26#ifndef _CXSC_CIVECTOR_HPP_INCLUDED
27#define _CXSC_CIVECTOR_HPP_INCLUDED
29#include "xscclass.hpp"
32#include "cinterval.hpp"
67#ifdef _CXSC_FRIEND_TPL
70template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
76template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
82 template <
class V>
friend void _vresize(V &rv)
noexcept;
83 template <
class V,
class S>
friend void _vresize(V &rv,
const int &len)
89 template <
class V,
class S>
friend void _vresize(V &rv,
const int &lb,
const int &ub)
95 template <
class V1,
class V2,
class S>
friend V1 &_vvassign(V1 &rv1,
const V2 &rv2)
noexcept;
96 template <
class V,
class S>
friend V & _vsassign(V &rv,
const S &r)
noexcept;
97 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
noexcept;
98 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
104template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
110template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
noexcept;
111 template <
class V1,
class V2>
friend V1 &_vvsetinf(V1 &rv1,
const V2 &rv2)
117 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
123 template <
class V,
class VS>
friend V &_vvssetinf(V &rv,
const VS &sl)
129 template <
class V,
class VS>
friend V &_vvssetsup(V &rv,
const VS &sl)
135template <
class V,
class MV>
friend V &_vmvsetinf(V &rv,
const MV &v)
141template <
class V,
class MV>
friend V &_vmvsetsup(V &rv,
const MV &v)
147 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
153 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
159 template <
class V,
class VS>
friend V &_vvsusetinf(V &rv,
const VS &sl)
165 template <
class V,
class VS>
friend V &_vvsusetsup(V &rv,
const VS &sl)
171template <
class V,
class MV>
friend V &_vmvusetinf(V &rv,
const MV &v)
177template <
class V,
class MV>
friend V &_vmvusetsup(V &rv,
const MV &v)
183 template <
class V,
class S>
friend V &_vssetinf(V &v,
const S &s)
noexcept;
184 template <
class V,
class S>
friend V &_vssetsup(V &v,
const S &s)
noexcept;
185 template <
class V,
class S>
friend V &_vsusetinf(V &v,
const S &s)
noexcept;
186 template <
class V,
class S>
friend V &_vsusetsup(V &v,
const S &s)
noexcept;
187 template <
class V,
class S>
friend V &_vssetim(V &v,
const S &s)
noexcept;
188 template <
class V,
class S>
friend V &_vssetre(V &v,
const S &s)
noexcept;
189 template <
class V>
friend V _vconj(
const V &rv)
noexcept;
190 template <
class VS,
class E>
friend E _vsconj(
const VS &sl)
noexcept;
191 template <
class V,
class E>
friend E _vabs(
const V &rv)
noexcept;
192 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
noexcept;
193template <
class MV,
class V>
friend V _mvabs(
const MV &mv)
noexcept;
194 template <
class V,
class E>
friend E _vdiam(
const V &rv)
noexcept;
195 template <
class V,
class E>
friend E _vmid(
const V &rv)
noexcept;
196 template <
class V,
class E>
friend E _vinf(
const V &rv)
noexcept;
197 template <
class V,
class E>
friend E _vsup(
const V &rv)
noexcept;
198 template <
class V,
class E>
friend E _vim(
const V &rv)
noexcept;
199 template <
class V,
class E>
friend E _vre(
const V &rv)
noexcept;
208 template <
class V1,
class V2>
friend V1 &_vvsetim(V1 &rv1,
const V2 &rv2)
214 template <
class V1,
class V2>
friend V1 &_vvsetre(V1 &rv1,
const V2 &rv2)
220 template <
class V,
class VS>
friend V &_vvssetim(V &rv,
const VS &sl)
226 template <
class V,
class VS>
friend V &_vvssetre(V &rv,
const VS &sl)
232template <
class V,
class MV>
friend V &_vmvsetim(V &rv,
const MV &v)
238template <
class V,
class MV>
friend V &_vmvsetre(V &rv,
const MV &v)
246 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
252 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
259 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
265 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
272 template <
class V,
class S>
friend V &_vsmultassign(V &rv,
const S &r)
noexcept;
273 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
279 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
285 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
291 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
297 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
303 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
309 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
315 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
321 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
327 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
333 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
339 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
345 template <
class V>
friend V _vminus(
const V &rv)
noexcept;
346 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
noexcept;
347 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
353 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
359 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
365 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
371 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
377 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
383 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
389 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
395 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
401 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
407 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
413 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
419 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
425 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
431 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
437 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
443 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
449 template <
class MV1,
class MV2,
class E>
friend E _mvmvsect(
const MV1 &rv1,
const MV2 &rv2)
455 template <
class MV,
class V,
class E>
friend E _mvvsect(
const MV &rv1,
const V &rv2)
461template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
467template <
class V,
class MV>
friend V &_vmvsectassign(V &rv,
const MV &v)
473 template <
class MV1,
class MV2,
class E>
friend E _mvmvconv(
const MV1 &rv1,
const MV2 &rv2)
479 template <
class MV,
class V,
class E>
friend E _mvvconv(
const MV &rv1,
const V &rv2)
485template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
491template <
class V,
class MV>
friend V &_vmvconvassign(V &rv,
const MV &v)
497 template <
class V,
class MV,
class S>
friend S _vmvcimult(
const V &rv1,
const MV &rv2)
504 template <
class V,
class S,
class E>
friend E _vsdiv(
const V &rv,
const S &s)
noexcept;
505 template <
class V,
class S>
friend V &_vsdivassign(V &rv,
const S &r)
noexcept;
506 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
noexcept;
507 template <
class V,
class S,
class E>
friend E _vsmult(
const V &rv,
const S &s)
noexcept;
508 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
noexcept;
509 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
noexcept;
510 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
516 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
522 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
528 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
534 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
540template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
546template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
552 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
noexcept;
553template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
560 template <
class V1,
class V2>
friend bool _vveq(
const V1 &rv1,
const V2 &rv2)
noexcept;
561 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
noexcept;
562 template <
class V1,
class V2>
friend bool _vvneq(
const V1 &rv1,
const V2 &rv2)
noexcept;
563 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
noexcept;
564 template <
class V1,
class V2>
friend bool _vvless(
const V1 &rv1,
const V2 &rv2)
noexcept;
565 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
noexcept;
566 template <
class V1,
class V2>
friend bool _vvleq(
const V1 &rv1,
const V2 &rv2)
noexcept;
567 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
noexcept;
568 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
noexcept;
569 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
noexcept;
570 template <
class V>
friend bool _vnot(
const V &rv)
noexcept;
571 template <
class V>
friend void *_vvoid(
const V &rv)
noexcept;
572 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
573 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
574 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
575 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
576 template <
class VS>
friend bool _vsnot(
const VS &sl)
noexcept;
577 template <
class VS>
friend void *_vsvoid(
const VS &sl)
noexcept;
578 template <
class V>
friend std::ostream &_vout(std::ostream &s,
const V &rv)
noexcept;
579 template <
class V>
friend std::istream &_vin(std::istream &s, V &rv)
noexcept;
582template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
589template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
noexcept;
590 template <
class M,
class V,
class E>
friend E _mvcimult(
const M &m,
const V &v)
596 template <
class V,
class M,
class E>
friend E _vmcimult(
const V &v,
const M &m)
602 template <
class V,
class M,
class S>
friend V &_vmimultassign(V &v,
const M &m)
608 template <
class V,
class M,
class S>
friend V &_vmcimultassign(V &v,
const M &m)
614 template <
class MS,
class V,
class E>
friend E _msvcimult(
const MS &ms,
const V &v)
620 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
626 template <
class V,
class MS,
class S>
friend V &_vmscimultassign(V &v,
const MS &ms)
634 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
680 explicit INLINE
civector(
const int &i)
noexcept;
683 explicit INLINE
civector(
const class index &i)
noexcept;
686 explicit INLINE
civector(
const int &i1,
const int &i2)
961 friend INLINE
int Lb(
const civector &rv)
noexcept {
return rv.l; }
963 friend INLINE
int Ub(
const civector &rv)
noexcept {
return rv.u; }
1003 INLINE
operator void*()
noexcept;
1025#ifdef _CXSC_FRIEND_TPL
1029 template <
class VS1,
class VS2>
friend VS1 & _vsvsassign(VS1 &sl1,
const VS2 &sl2)
1030#if(CXSC_INDEX_CHECK)
1035 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl)
noexcept;
1036 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
1037#if(CXSC_INDEX_CHECK)
1042 template <
class VS,
class S>
friend VS & _vssassign(VS &sl,
const S &r)
noexcept;
1043 template <
class VS,
class V>
friend VS &_vsvsetinf(VS &sl,
const V &rv)
1044#if(CXSC_INDEX_CHECK)
1049 template <
class VS,
class V>
friend VS &_vsvsetsup(VS &sl,
const V &rv)
1050#if(CXSC_INDEX_CHECK)
1055 template <
class VS1,
class VS2>
friend VS1 &_vsvssetinf(VS1 &sl1,
const VS2 &sl2)
1056#if(CXSC_INDEX_CHECK)
1061 template <
class VS1,
class VS2>
friend VS1 &_vsvssetsup(VS1 &sl1,
const VS2 &sl2)
1062#if(CXSC_INDEX_CHECK)
1067 template <
class VS,
class V>
friend VS &_vsvusetinf(VS &sl,
const V &rv)
1068#if(CXSC_INDEX_CHECK)
1073 template <
class VS,
class V>
friend VS &_vsvusetsup(VS &sl,
const V &rv)
1074#if(CXSC_INDEX_CHECK)
1079 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetinf(VS1 &sl1,
const VS2 &sl2)
1080#if(CXSC_INDEX_CHECK)
1085 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetsup(VS1 &sl1,
const VS2 &sl2)
1086#if(CXSC_INDEX_CHECK)
1092 template <
class VS,
class E>
friend E _vsconj(
const VS &sl)
noexcept;
1093 template <
class VS,
class E>
friend E _vsabs(
const VS &sl)
noexcept;
1094 template <
class VS,
class E>
friend E _vsdiam(
const VS &sl)
noexcept;
1095 template <
class VS,
class E>
friend E _vsmid(
const VS &sl)
noexcept;
1096 template <
class VS,
class E>
friend E _vsinf(
const VS &sl)
noexcept;
1097 template <
class VS,
class E>
friend E _vssup(
const VS &sl)
noexcept;
1098 template <
class VS,
class E>
friend E _vsim(
const VS &sl)
noexcept;
1099 template <
class VS,
class E>
friend E _vsre(
const VS &sl)
noexcept;
1108 template <
class VS,
class V>
friend VS &_vsvsetim(VS &sl,
const V &rv)
1109#if(CXSC_INDEX_CHECK)
1114 template <
class VS,
class V>
friend VS &_vsvsetre(VS &sl,
const V &rv)
1115#if(CXSC_INDEX_CHECK)
1120 template <
class VS1,
class VS2>
friend VS1 &_vsvssetim(VS1 &sl1,
const VS2 &sl2)
1121#if(CXSC_INDEX_CHECK)
1126 template <
class VS1,
class VS2>
friend VS1 &_vsvssetre(VS1 &sl1,
const VS2 &sl2)
1127#if(CXSC_INDEX_CHECK)
1144 template <
class VS,
class S>
friend VS &_vsssetinf(VS &vs,
const S &s)
noexcept;
1145 template <
class VS,
class S>
friend VS &_vsssetsup(VS &vs,
const S &s)
noexcept;
1146 template <
class VS,
class S>
friend VS &_vssusetinf(VS &vs,
const S &s)
noexcept;
1147 template <
class VS,
class S>
friend VS &_vssusetsup(VS &vs,
const S &s)
noexcept;
1148 template <
class VS,
class S>
friend VS &_vsssetim(VS &vs,
const S &s)
noexcept;
1149 template <
class VS,
class S>
friend VS &_vsssetre(VS &vs,
const S &s)
noexcept;
1151 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
1152#if(CXSC_INDEX_CHECK)
1157 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
1158#if(CXSC_INDEX_CHECK)
1164 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s)
noexcept;
1165 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s)
noexcept;
1167 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
1168#if(CXSC_INDEX_CHECK)
1173 template <
class VS,
class S>
friend VS &_vssmultassign(VS &rv,
const S &r)
noexcept;
1174 template <
class VS,
class S>
friend VS &_vssdivassign(VS &rv,
const S &r)
noexcept;
1175 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
1176#if(CXSC_INDEX_CHECK)
1181 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
1182#if(CXSC_INDEX_CHECK)
1187 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
1188#if(CXSC_INDEX_CHECK)
1193 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
1194#if(CXSC_INDEX_CHECK)
1199 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
1200#if(CXSC_INDEX_CHECK)
1205 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
1206#if(CXSC_INDEX_CHECK)
1211 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
1212#if(CXSC_INDEX_CHECK)
1217 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
1218#if(CXSC_INDEX_CHECK)
1223 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
1224#if(CXSC_INDEX_CHECK)
1229 template <
class VS,
class V>
friend V _vsminus(
const VS &sl)
noexcept;
1230 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
1231#if(CXSC_INDEX_CHECK)
1236 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
1237#if(CXSC_INDEX_CHECK)
1242 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
1243#if(CXSC_INDEX_CHECK)
1248 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
1249#if(CXSC_INDEX_CHECK)
1254 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
1255#if(CXSC_INDEX_CHECK)
1260 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
1261#if(CXSC_INDEX_CHECK)
1266 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
1267#if(CXSC_INDEX_CHECK)
1272 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
1273#if(CXSC_INDEX_CHECK)
1278 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
1279#if(CXSC_INDEX_CHECK)
1284 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
1285#if(CXSC_INDEX_CHECK)
1290 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
1291#if(CXSC_INDEX_CHECK)
1296 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
1297#if(CXSC_INDEX_CHECK)
1302 template <
class VS,
class M,
class S>
friend VS &_vsmcimultassign(VS &v,
const M &m)
1303#if(CXSC_INDEX_CHECK)
1309 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv)
noexcept;
1310 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv)
noexcept;
1311 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv)
noexcept;
1312 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv)
noexcept;
1313 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl)
noexcept;
1314 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl)
noexcept;
1315 template <
class VS1,
class VS2,
class E>
friend E _vsvscimult(
const VS1 & sl1,
const VS2 &sl2)
1316#if(CXSC_INDEX_CHECK)
1321 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
1322 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
1323 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
1324 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2)
noexcept;
1325 template <
class VS>
friend bool _vsnot(
const VS &sl)
noexcept;
1326 template <
class VS>
friend void *_vsvoid(
const VS &sl)
noexcept;
1327 template <
class V>
friend std::ostream &_vsout(std::ostream &s,
const V &rv)
noexcept;
1328 template <
class V>
friend std::istream &_vsin(std::istream &s, V &rv)
noexcept;
1331 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
1332#if(CXSC_INDEX_CHECK)
1338 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
1339#if(CXSC_INDEX_CHECK)
1347 template <
class V1,
class V2,
class S>
friend V1 &_vvassign(V1 &rv1,
const V2 &rv2)
noexcept;
1348 template <
class V,
class S>
friend V & _vsassign(V &rv,
const S &r)
noexcept;
1350template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
1351#if(CXSC_INDEX_CHECK)
1356template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
noexcept;
1357template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
noexcept;
1359 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
1360#if(CXSC_INDEX_CHECK)
1367 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
noexcept;
1368 template <
class V,
class S,
class E>
friend E _vsmult(
const V &rv,
const S &s)
noexcept;
1369 template <
class V,
class S,
class E>
friend E _vsdiv(
const V &rv,
const S &s)
noexcept;
1370 template <
class V,
class S>
friend V &_vsdivassign(V &rv,
const S &r)
noexcept;
1371 template <
class V,
class S>
friend V &_vsmultassign(V &rv,
const S &r)
noexcept;
1373 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
1374#if(CXSC_INDEX_CHECK)
1379 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
1380#if(CXSC_INDEX_CHECK)
1385 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
1386#if(CXSC_INDEX_CHECK)
1391 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
1392#if(CXSC_INDEX_CHECK)
1397 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
1398#if(CXSC_INDEX_CHECK)
1403 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
1404#if(CXSC_INDEX_CHECK)
1409 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
1410#if(CXSC_INDEX_CHECK)
1415 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
1416#if(CXSC_INDEX_CHECK)
1423template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
1424#if(CXSC_INDEX_CHECK)
1429template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
1430#if(CXSC_INDEX_CHECK)
1435 template <
class M,
class V,
class E>
friend E _mvcimult(
const M &m,
const V &v)
1436#if(CXSC_INDEX_CHECK)
1441 template <
class MS,
class V,
class E>
friend E _msvcimult(
const MS &ms,
const V &v)
1442#if(CXSC_INDEX_CHECK)
1447 template <
class V,
class M,
class E>
friend E _vmcimult(
const V &v,
const M &m)
1448#if(CXSC_INDEX_CHECK)
1453 template <
class V,
class MS,
class S>
friend V &_vmscimultassign(V &v,
const MS &ms)
1454#if(CXSC_INDEX_CHECK)
1459 template <
class V,
class M,
class S>
friend V &_vmcimultassign(V &v,
const M &m)
1460#if(CXSC_INDEX_CHECK)
1513 explicit INLINE
civector_slice(
civector &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) { }
1528#if(CXSC_INDEX_CHECK)
1535#if(CXSC_INDEX_CHECK)
1544#if(CXSC_INDEX_CHECK)
1551#if(CXSC_INDEX_CHECK)
1566#if(CXSC_INDEX_CHECK)
1573#if(CXSC_INDEX_CHECK)
1582#if(CXSC_INDEX_CHECK)
1589#if(CXSC_INDEX_CHECK)
1605#if(CXSC_INDEX_CHECK)
1612#if(CXSC_INDEX_CHECK)
1621#if(CXSC_INDEX_CHECK)
1628#if(CXSC_INDEX_CHECK)
1644#if(CXSC_INDEX_CHECK)
1651#if(CXSC_INDEX_CHECK)
1660#if(CXSC_INDEX_CHECK)
1667#if(CXSC_INDEX_CHECK)
1678#if(CXSC_INDEX_CHECK)
1692#if(CXSC_INDEX_CHECK)
1700#if(CXSC_INDEX_CHECK)
1710#if(CXSC_INDEX_CHECK)
1717#if(CXSC_INDEX_CHECK)
1722 INLINE
operator void*()
noexcept;
1730#if(CXSC_INDEX_CHECK)
1737#if(CXSC_INDEX_CHECK)
1744#if(CXSC_INDEX_CHECK)
1751#if(CXSC_INDEX_CHECK)
1758#if(CXSC_INDEX_CHECK)
1765#if(CXSC_INDEX_CHECK)
1772#if(CXSC_INDEX_CHECK)
1779#if(CXSC_INDEX_CHECK)
1786#if(CXSC_INDEX_CHECK)
1793#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)
1840#if(CXSC_INDEX_CHECK)
1847#if(CXSC_INDEX_CHECK)
1854#if(CXSC_INDEX_CHECK)
1861#if(CXSC_INDEX_CHECK)
1868#if(CXSC_INDEX_CHECK)
1880#if(CXSC_INDEX_CHECK)
1887#if(CXSC_INDEX_CHECK)
1894#if(CXSC_INDEX_CHECK)
1901#if(CXSC_INDEX_CHECK)
1908#if(CXSC_INDEX_CHECK)
1915#if(CXSC_INDEX_CHECK)
1922#if(CXSC_INDEX_CHECK)
1929#if(CXSC_INDEX_CHECK)
1936#if(CXSC_INDEX_CHECK)
1943#if(CXSC_INDEX_CHECK)
1955#if(CXSC_INDEX_CHECK)
1962#if(CXSC_INDEX_CHECK)
1969#if(CXSC_INDEX_CHECK)
1976#if(CXSC_INDEX_CHECK)
1983#if(CXSC_INDEX_CHECK)
1990#if(CXSC_INDEX_CHECK)
1997#if(CXSC_INDEX_CHECK)
2004#if(CXSC_INDEX_CHECK)
2011#if(CXSC_INDEX_CHECK)
2018#if(CXSC_INDEX_CHECK)
2077#if(CXSC_INDEX_CHECK)
2084#if(CXSC_INDEX_CHECK)
2091#if(CXSC_INDEX_CHECK)
2098#if(CXSC_INDEX_CHECK)
2105#if(CXSC_INDEX_CHECK)
2112#if(CXSC_INDEX_CHECK)
2119#if(CXSC_INDEX_CHECK)
2126#if(CXSC_INDEX_CHECK)
2134#if(CXSC_INDEX_CHECK)
2141#if(CXSC_INDEX_CHECK)
2148#if(CXSC_INDEX_CHECK)
2155#if(CXSC_INDEX_CHECK)
2162#if(CXSC_INDEX_CHECK)
2169#if(CXSC_INDEX_CHECK)
2176#if(CXSC_INDEX_CHECK)
2183#if(CXSC_INDEX_CHECK)
2191#if(CXSC_INDEX_CHECK)
2198#if(CXSC_INDEX_CHECK)
2205#if(CXSC_INDEX_CHECK)
2212#if(CXSC_INDEX_CHECK)
2220#if(CXSC_INDEX_CHECK)
2227#if(CXSC_INDEX_CHECK)
2234#if(CXSC_INDEX_CHECK)
2241#if(CXSC_INDEX_CHECK)
2277#if(CXSC_INDEX_CHECK)
2284#if(CXSC_INDEX_CHECK)
2332 INLINE
bool operator !(
const civector &rv)
noexcept;
2464 INLINE std::ostream &operator <<(std::ostream &s,
const civector &rv)
noexcept;
2466 INLINE std::ostream &operator <<(std::ostream &o,
const civector_slice &sl)
noexcept;
2468 INLINE std::istream &operator >>(std::istream &s,
civector &rv)
noexcept;
2470 INLINE std::istream &operator >>(std::istream &s,
civector_slice &rv)
noexcept;
2489#if(CXSC_INDEX_CHECK)
2496#if(CXSC_INDEX_CHECK)
2503#if(CXSC_INDEX_CHECK)
2510#if(CXSC_INDEX_CHECK)
2517#if(CXSC_INDEX_CHECK)
2524#if(CXSC_INDEX_CHECK)
2531#if(CXSC_INDEX_CHECK)
2538#if(CXSC_INDEX_CHECK)
2545#if(CXSC_INDEX_CHECK)
2552#if(CXSC_INDEX_CHECK)
2560#if(CXSC_INDEX_CHECK)
2567#if(CXSC_INDEX_CHECK)
2574#if(CXSC_INDEX_CHECK)
2581#if(CXSC_INDEX_CHECK)
2594#if(CXSC_INDEX_CHECK)
2601#if(CXSC_INDEX_CHECK)
2608#if(CXSC_INDEX_CHECK)
2615#if(CXSC_INDEX_CHECK)
2622#if(CXSC_INDEX_CHECK)
2629#if(CXSC_INDEX_CHECK)
2641#if(CXSC_INDEX_CHECK)
2648#if(CXSC_INDEX_CHECK)
2655#if(CXSC_INDEX_CHECK)
2662#if(CXSC_INDEX_CHECK)
2669#if(CXSC_INDEX_CHECK)
2676#if(CXSC_INDEX_CHECK)
2684#if(CXSC_INDEX_CHECK)
2691#if(CXSC_INDEX_CHECK)
2698#if(CXSC_INDEX_CHECK)
2705#if(CXSC_INDEX_CHECK)
2712#if(CXSC_INDEX_CHECK)
2719#if(CXSC_INDEX_CHECK)
2727#if(CXSC_INDEX_CHECK)
2734#if(CXSC_INDEX_CHECK)
2741#if(CXSC_INDEX_CHECK)
2748#if(CXSC_INDEX_CHECK)
2755#if(CXSC_INDEX_CHECK)
2762#if(CXSC_INDEX_CHECK)
2769 INLINE
bool operator ==(
const civector &rv1,
const civector &rv2)
noexcept;
2777 INLINE
bool operator !=(
const civector &rv1,
const civector &rv2)
noexcept;
2793 INLINE
bool operator <=(
const civector &rv1,
const civector &rv2)
noexcept;
2809 INLINE
bool operator >=(
const civector &rv1,
const civector &rv2)
noexcept;
2821#if(CXSC_INDEX_CHECK)
2828#if(CXSC_INDEX_CHECK)
2835#if(CXSC_INDEX_CHECK)
2842#if(CXSC_INDEX_CHECK)
2849#if(CXSC_INDEX_CHECK)
2856#if(CXSC_INDEX_CHECK)
2863#if(CXSC_INDEX_CHECK)
2870#if(CXSC_INDEX_CHECK)
2877#if(CXSC_INDEX_CHECK)
2884#if(CXSC_INDEX_CHECK)
2891#if(CXSC_INDEX_CHECK)
2898#if(CXSC_INDEX_CHECK)
2906#if(CXSC_INDEX_CHECK)
2913#if(CXSC_INDEX_CHECK)
2920#if(CXSC_INDEX_CHECK)
2927#if(CXSC_INDEX_CHECK)
2935#if(CXSC_INDEX_CHECK)
2942#if(CXSC_INDEX_CHECK)
2949#if(CXSC_INDEX_CHECK)
2956#if(CXSC_INDEX_CHECK)
2964#if(CXSC_INDEX_CHECK)
2971#if(CXSC_INDEX_CHECK)
2978#if(CXSC_INDEX_CHECK)
2985#if(CXSC_INDEX_CHECK)
2993#if(CXSC_INDEX_CHECK)
3000#if(CXSC_INDEX_CHECK)
3007#if(CXSC_INDEX_CHECK)
3014#if(CXSC_INDEX_CHECK)
3022#if(CXSC_INDEX_CHECK)
3029#if(CXSC_INDEX_CHECK)
3037#if(CXSC_INDEX_CHECK)
3044#if(CXSC_INDEX_CHECK)
3051#if(CXSC_INDEX_CHECK)
3058#if(CXSC_INDEX_CHECK)
3066#if(CXSC_INDEX_CHECK)
3073#if(CXSC_INDEX_CHECK)
3080#if(CXSC_INDEX_CHECK)
3087#if(CXSC_INDEX_CHECK)
3095#if(CXSC_INDEX_CHECK)
3102#if(CXSC_INDEX_CHECK)
3110#if(CXSC_INDEX_CHECK)
3117#if(CXSC_INDEX_CHECK)
3124#if(CXSC_INDEX_CHECK)
3131#if(CXSC_INDEX_CHECK)
3139#if(CXSC_INDEX_CHECK)
3146#if(CXSC_INDEX_CHECK)
3153#if(CXSC_INDEX_CHECK)
3160#if(CXSC_INDEX_CHECK)
3168#if(CXSC_INDEX_CHECK)
3175#if(CXSC_INDEX_CHECK)
3183#if(CXSC_INDEX_CHECK)
3190#if(CXSC_INDEX_CHECK)
3197#if(CXSC_INDEX_CHECK)
3204#if(CXSC_INDEX_CHECK)
3212#if(CXSC_INDEX_CHECK)
3219#if(CXSC_INDEX_CHECK)
3226#if(CXSC_INDEX_CHECK)
3233#if(CXSC_INDEX_CHECK)
3241#if(CXSC_INDEX_CHECK)
3248#if(CXSC_INDEX_CHECK)
3257#if(CXSC_INDEX_CHECK)
3264#if(CXSC_INDEX_CHECK)
3271#if(CXSC_INDEX_CHECK)
3278#if(CXSC_INDEX_CHECK)
3285#if(CXSC_INDEX_CHECK)
3292#if(CXSC_INDEX_CHECK)
3299#if(CXSC_INDEX_CHECK)
3306#if(CXSC_INDEX_CHECK)
3313#if(CXSC_INDEX_CHECK)
3320#if(CXSC_INDEX_CHECK)
3327#if(CXSC_INDEX_CHECK)
3334#if(CXSC_INDEX_CHECK)
3345#if(CXSC_INDEX_CHECK)
3352#if(CXSC_INDEX_CHECK)
3359#if(CXSC_INDEX_CHECK)
3366#if(CXSC_INDEX_CHECK)
3374#if(CXSC_INDEX_CHECK)
3381#if(CXSC_INDEX_CHECK)
3388#if(CXSC_INDEX_CHECK)
3395#if(CXSC_INDEX_CHECK)
3403#if(CXSC_INDEX_CHECK)
3410#if(CXSC_INDEX_CHECK)
3417#if(CXSC_INDEX_CHECK)
3424#if(CXSC_INDEX_CHECK)
3432#if(CXSC_INDEX_CHECK)
3439#if(CXSC_INDEX_CHECK)
3446#if(CXSC_INDEX_CHECK)
3453#if(CXSC_INDEX_CHECK)
3461#if(CXSC_INDEX_CHECK)
3468#if(CXSC_INDEX_CHECK)
3476#if(CXSC_INDEX_CHECK)
3483#if(CXSC_INDEX_CHECK)
3490#if(CXSC_INDEX_CHECK)
3497#if(CXSC_INDEX_CHECK)
3505#if(CXSC_INDEX_CHECK)
3512#if(CXSC_INDEX_CHECK)
3519#if(CXSC_INDEX_CHECK)
3526#if(CXSC_INDEX_CHECK)
3534#if(CXSC_INDEX_CHECK)
3541#if(CXSC_INDEX_CHECK)
3549#if(CXSC_INDEX_CHECK)
3556#if(CXSC_INDEX_CHECK)
3563#if(CXSC_INDEX_CHECK)
3570#if(CXSC_INDEX_CHECK)
3578#if(CXSC_INDEX_CHECK)
3585#if(CXSC_INDEX_CHECK)
3592#if(CXSC_INDEX_CHECK)
3599#if(CXSC_INDEX_CHECK)
3607#if(CXSC_INDEX_CHECK)
3614#if(CXSC_INDEX_CHECK)
3622#if(CXSC_INDEX_CHECK)
3629#if(CXSC_INDEX_CHECK)
3636#if(CXSC_INDEX_CHECK)
3643#if(CXSC_INDEX_CHECK)
3651#if(CXSC_INDEX_CHECK)
3658#if(CXSC_INDEX_CHECK)
3665#if(CXSC_INDEX_CHECK)
3672#if(CXSC_INDEX_CHECK)
3680#if(CXSC_INDEX_CHECK)
3687#if(CXSC_INDEX_CHECK)
3697#if(CXSC_INDEX_CHECK)
3704#if(CXSC_INDEX_CHECK)
3711#if(CXSC_INDEX_CHECK)
3718#if(CXSC_INDEX_CHECK)
3725#if(CXSC_INDEX_CHECK)
3732#if(CXSC_INDEX_CHECK)
3739#if(CXSC_INDEX_CHECK)
3746#if(CXSC_INDEX_CHECK)
3753#if(CXSC_INDEX_CHECK)
3760#if(CXSC_INDEX_CHECK)
3767#if(CXSC_INDEX_CHECK)
3774#if(CXSC_INDEX_CHECK)
3781#if(CXSC_INDEX_CHECK)
3788#if(CXSC_INDEX_CHECK)
3795#if(CXSC_INDEX_CHECK)
3802#if(CXSC_INDEX_CHECK)
3810#if(CXSC_INDEX_CHECK)
3817#if(CXSC_INDEX_CHECK)
3825#if(CXSC_INDEX_CHECK)
3832#if(CXSC_INDEX_CHECK)
3839#if(CXSC_INDEX_CHECK)
3846#if(CXSC_INDEX_CHECK)
3854#if(CXSC_INDEX_CHECK)
3861#if(CXSC_INDEX_CHECK)
3868#if(CXSC_INDEX_CHECK)
3875#if(CXSC_INDEX_CHECK)
3883#if(CXSC_INDEX_CHECK)
3890#if(CXSC_INDEX_CHECK)
3897#if(CXSC_INDEX_CHECK)
3904#if(CXSC_INDEX_CHECK)
3912#if(CXSC_INDEX_CHECK)
3919#if(CXSC_INDEX_CHECK)
3926#if(CXSC_INDEX_CHECK)
3933#if(CXSC_INDEX_CHECK)
3941#if(CXSC_INDEX_CHECK)
3948#if(CXSC_INDEX_CHECK)
3956#if(CXSC_INDEX_CHECK)
3963#if(CXSC_INDEX_CHECK)
3970#if(CXSC_INDEX_CHECK)
3977#if(CXSC_INDEX_CHECK)
3985#if(CXSC_INDEX_CHECK)
3992#if(CXSC_INDEX_CHECK)
3999#if(CXSC_INDEX_CHECK)
4006#if(CXSC_INDEX_CHECK)
4014#if(CXSC_INDEX_CHECK)
4021#if(CXSC_INDEX_CHECK)
4029#if(CXSC_INDEX_CHECK)
4036#if(CXSC_INDEX_CHECK)
4043#if(CXSC_INDEX_CHECK)
4050#if(CXSC_INDEX_CHECK)
4058#if(CXSC_INDEX_CHECK)
4065#if(CXSC_INDEX_CHECK)
4072#if(CXSC_INDEX_CHECK)
4079#if(CXSC_INDEX_CHECK)
4087#if(CXSC_INDEX_CHECK)
4094#if(CXSC_INDEX_CHECK)
4102#if(CXSC_INDEX_CHECK)
4109#if(CXSC_INDEX_CHECK)
4116#if(CXSC_INDEX_CHECK)
4123#if(CXSC_INDEX_CHECK)
4131#if(CXSC_INDEX_CHECK)
4138#if(CXSC_INDEX_CHECK)
4145#if(CXSC_INDEX_CHECK)
4152#if(CXSC_INDEX_CHECK)
4160#if(CXSC_INDEX_CHECK)
4167#if(CXSC_INDEX_CHECK)
4176#if(CXSC_INDEX_CHECK)
4183#if(CXSC_INDEX_CHECK)
4190#if(CXSC_INDEX_CHECK)
4197#if(CXSC_INDEX_CHECK)
4204#if(CXSC_INDEX_CHECK)
4211#if(CXSC_INDEX_CHECK)
4218#if(CXSC_INDEX_CHECK)
4225#if(CXSC_INDEX_CHECK)
4234#if(CXSC_INDEX_CHECK)
4241#if(CXSC_INDEX_CHECK)
4248#if(CXSC_INDEX_CHECK)
4255#if(CXSC_INDEX_CHECK)
4267#if(CXSC_INDEX_CHECK)
4274#if(CXSC_INDEX_CHECK)
4281#if(CXSC_INDEX_CHECK)
4288#if(CXSC_INDEX_CHECK)
4296#if(CXSC_INDEX_CHECK)
4303#if(CXSC_INDEX_CHECK)
4310#if(CXSC_INDEX_CHECK)
4317#if(CXSC_INDEX_CHECK)
4326#if(CXSC_INDEX_CHECK)
4333#if(CXSC_INDEX_CHECK)
4340#if(CXSC_INDEX_CHECK)
4347#if(CXSC_INDEX_CHECK)
4355#if(CXSC_INDEX_CHECK)
4362#if(CXSC_INDEX_CHECK)
4369#if(CXSC_INDEX_CHECK)
4376#if(CXSC_INDEX_CHECK)
4385#if(CXSC_INDEX_CHECK)
4392#if(CXSC_INDEX_CHECK)
4399#if(CXSC_INDEX_CHECK)
4406#if(CXSC_INDEX_CHECK)
4414#if(CXSC_INDEX_CHECK)
4421#if(CXSC_INDEX_CHECK)
4428#if(CXSC_INDEX_CHECK)
4435#if(CXSC_INDEX_CHECK)
4443#if(CXSC_INDEX_CHECK)
4450#if(CXSC_INDEX_CHECK)
4457#if(CXSC_INDEX_CHECK)
4464#if(CXSC_INDEX_CHECK)
4472#if(CXSC_INDEX_CHECK)
4479#if(CXSC_INDEX_CHECK)
4486#if(CXSC_INDEX_CHECK)
4493#if(CXSC_INDEX_CHECK)
4504#ifdef _CXSC_INCL_INL
4505#include "vector.inl"
4506#include "civector.inl"
4509#ifdef _CXSC_RMATRIX_HPP_INCLUDED
4510# ifdef _CXSC_INCL_INL
4511# include "civecrmat.inl"
4513# include "civecrmat.hpp"
4517#ifdef _CXSC_CMATRIX_HPP_INCLUDED
4518# ifdef _CXSC_INCL_INL
4519# include "civeccmat.inl"
4521# include "civeccmat.hpp"
4525#ifdef _CXSC_IMATRIX_HPP_INCLUDED
4526# ifdef _CXSC_INCL_INL
4527# include "civecimat.inl"
4529# include "civecimat.hpp"
4534#define _CXSC_BLAS_CIVECTOR
4535#include "cxsc_blas.inl"
The Data Type cidotprecision.
The Data Type cimatrix_slice.
The Data Type cimatrix_subv.
The Scalar Type cinterval.
cinterval(void) noexcept
Constructor of class cinterval.
The Data Type civector_slice.
friend rvector SupIm(const civector_slice &v) noexcept
Returns the supremum of imaginary part of the vector.
friend rvector SupRe(const civector_slice &v) noexcept
Returns the supremum of real part of the vector.
civector_slice & operator|=(const civector &rv) noexcept
Allocates the convex hull of the arguments to the first argument.
civector_slice(const civector_slice &a) noexcept
Constructor of class civector_slice.
friend int Lb(const civector_slice &sl) noexcept
Returns the lower bound of the vector.
civector_slice & operator&=(const civector &rv) noexcept
Allocates the intersection of the arguments to the first argument.
civector_slice & operator*=(const cinterval &r) noexcept
Implementation of multiplication and allocation operation.
civector_slice & operator+=(const civector &rv) noexcept
Implementation of addition and allocation operation.
friend rvector InfIm(const civector_slice &v) noexcept
Returns the infimum of imaginary part of the vector.
civector_slice & operator()() noexcept
Operator for accessing the whole vector.
civector_slice(civector &a, const int &lb, const int &ub) noexcept
Constructor of class civector_slice.
friend cvector Inf(const civector_slice &v) noexcept
Returns the infimum of the vector.
civector_slice & operator=(const scivector_slice &sl)
Implementation of standard assigning operator.
civector_slice & operator/=(const cinterval &r) noexcept
Implementation of division and allocation operation.
civector_slice & operator-=(const civector &rv) noexcept
Implementation of subtraction and allocation operation.
friend rvector InfRe(const civector_slice &v) noexcept
Returns the infimum of real part of the vector.
friend int VecLen(const civector_slice &sl) noexcept
Returns the size of the vector.
friend cvector Sup(const civector_slice &v) noexcept
Returns the supremum of the vector.
cinterval & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector (read-only)
civector_slice(civector_slice &a, const int &lb, const int &ub) noexcept
Constructor of class civector_slice.
friend int Ub(const civector_slice &sl) noexcept
Returns the upper bound of the vector.
civector & operator=(const civector &rv) noexcept
Implementation of standard assigning operator.
friend int Ub(const civector &rv) noexcept
Returns the upper bound of the vector.
friend civector & SetUb(civector &rv, const int &u) noexcept
Sets the upper bound of the vector.
friend rvector InfIm(const civector &v) noexcept
Returns the infimum of imaginary part of the vector.
friend int VecLen(const civector &rv) noexcept
Returns the dimension of the vector.
friend cvector Inf(const civector &v) noexcept
Returns the infimum of the vector.
civector & operator()() noexcept
Operator for accessing the whole vector.
friend cvector Sup(const civector &v) noexcept
Returns the supremum of the vector.
cinterval & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector (read-only)
friend int Lb(const civector &rv) noexcept
Returns the lower bound of the vector.
friend civector & SetLb(civector &rv, const int &l) noexcept
Sets the lower bound of the vector.
friend rvector InfRe(const civector &v) noexcept
Returns the infimum of real part of the vector.
friend rvector SupIm(const civector &v) noexcept
Returns the supremum of imaginary part of the vector.
friend rvector SupRe(const civector &v) noexcept
Returns the supremum of real part of the vector.
civector() noexcept
Constructor of class civector.
The Data Type cmatrix_slice.
The Data Type cmatrix_subv.
The Data Type cvector_slice.
The Data Type imatrix_slice.
The Data Type imatrix_subv.
The Scalar Type interval.
The Data Type ivector_slice.
The Data Type rmatrix_slice.
The Data Type rmatrix_subv.
The Data Type rvector_slice.
Helper class for slices of sparse vectors.
A sparse complex interval vector.
Helper class for slices of sparse vectors.
Helper class for slices of sparse vectors.
A sparse interval vector.
Helper class for slices of sparse vectors.
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.
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
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.
cvector mid(const cimatrix_subv &mv) noexcept
Returns the middle 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_subv & SetUncheckedInf(cimatrix_subv &iv, const complex &r) noexcept
Returns the matrix with the new unchecked given infimum value.
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.