C-XSC - A C++ Class Library for Extended Scientific Computing
2.5.4
|
26 #ifndef _CXSC_CIVECTOR_HPP_INCLUDED
27 #define _CXSC_CIVECTOR_HPP_INCLUDED
29 #include "xscclass.hpp"
32 #include "cinterval.hpp"
34 #include "rvector.hpp"
35 #include "ivector.hpp"
36 #include "cvector.hpp"
48 class scivector_slice;
67 #ifdef _CXSC_FRIEND_TPL
70 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
76 template <
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)
104 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
105 #if(CXSC_INDEX_CHECK)
110 template <
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)
112 #if(CXSC_INDEX_CHECK)
117 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
118 #if(CXSC_INDEX_CHECK)
123 template <
class V,
class VS>
friend V &_vvssetinf(V &rv,
const VS &sl)
124 #if(CXSC_INDEX_CHECK)
129 template <
class V,
class VS>
friend V &_vvssetsup(V &rv,
const VS &sl)
130 #if(CXSC_INDEX_CHECK)
135 template <
class V,
class MV>
friend V &_vmvsetinf(V &rv,
const MV &v)
136 #if(CXSC_INDEX_CHECK)
141 template <
class V,
class MV>
friend V &_vmvsetsup(V &rv,
const MV &v)
142 #if(CXSC_INDEX_CHECK)
147 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
148 #if(CXSC_INDEX_CHECK)
153 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
154 #if(CXSC_INDEX_CHECK)
159 template <
class V,
class VS>
friend V &_vvsusetinf(V &rv,
const VS &sl)
160 #if(CXSC_INDEX_CHECK)
165 template <
class V,
class VS>
friend V &_vvsusetsup(V &rv,
const VS &sl)
166 #if(CXSC_INDEX_CHECK)
171 template <
class V,
class MV>
friend V &_vmvusetinf(V &rv,
const MV &v)
172 #if(CXSC_INDEX_CHECK)
177 template <
class V,
class MV>
friend V &_vmvusetsup(V &rv,
const MV &v)
178 #if(CXSC_INDEX_CHECK)
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;
193 template <
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)
209 #if(CXSC_INDEX_CHECK)
214 template <
class V1,
class V2>
friend V1 &_vvsetre(V1 &rv1,
const V2 &rv2)
215 #if(CXSC_INDEX_CHECK)
220 template <
class V,
class VS>
friend V &_vvssetim(V &rv,
const VS &sl)
221 #if(CXSC_INDEX_CHECK)
226 template <
class V,
class VS>
friend V &_vvssetre(V &rv,
const VS &sl)
227 #if(CXSC_INDEX_CHECK)
232 template <
class V,
class MV>
friend V &_vmvsetim(V &rv,
const MV &v)
233 #if(CXSC_INDEX_CHECK)
238 template <
class V,
class MV>
friend V &_vmvsetre(V &rv,
const MV &v)
239 #if(CXSC_INDEX_CHECK)
246 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
247 #if(CXSC_INDEX_CHECK)
252 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
253 #if(CXSC_INDEX_CHECK)
259 template <
class V1,
class V2,
class E>
friend E _vvcimult(
const V1 & rv1,
const V2 &rv2)
260 #if(CXSC_INDEX_CHECK)
265 template <
class VS,
class V,
class E>
friend E _vsvcimult(
const VS & sl,
const V &rv)
266 #if(CXSC_INDEX_CHECK)
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)
274 #if(CXSC_INDEX_CHECK)
279 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
280 #if(CXSC_INDEX_CHECK)
285 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
286 #if(CXSC_INDEX_CHECK)
291 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
292 #if(CXSC_INDEX_CHECK)
297 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
298 #if(CXSC_INDEX_CHECK)
303 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
304 #if(CXSC_INDEX_CHECK)
309 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
310 #if(CXSC_INDEX_CHECK)
315 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
316 #if(CXSC_INDEX_CHECK)
321 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
322 #if(CXSC_INDEX_CHECK)
327 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
328 #if(CXSC_INDEX_CHECK)
333 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
334 #if(CXSC_INDEX_CHECK)
339 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
340 #if(CXSC_INDEX_CHECK)
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)
348 #if(CXSC_INDEX_CHECK)
353 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
354 #if(CXSC_INDEX_CHECK)
359 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
360 #if(CXSC_INDEX_CHECK)
365 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
366 #if(CXSC_INDEX_CHECK)
371 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
372 #if(CXSC_INDEX_CHECK)
377 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
378 #if(CXSC_INDEX_CHECK)
383 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
384 #if(CXSC_INDEX_CHECK)
389 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
390 #if(CXSC_INDEX_CHECK)
395 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
396 #if(CXSC_INDEX_CHECK)
401 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
402 #if(CXSC_INDEX_CHECK)
407 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
408 #if(CXSC_INDEX_CHECK)
413 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
414 #if(CXSC_INDEX_CHECK)
419 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
420 #if(CXSC_INDEX_CHECK)
425 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
426 #if(CXSC_INDEX_CHECK)
431 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
432 #if(CXSC_INDEX_CHECK)
437 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
438 #if(CXSC_INDEX_CHECK)
443 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
444 #if(CXSC_INDEX_CHECK)
449 template <
class MV1,
class MV2,
class E>
friend E _mvmvsect(
const MV1 &rv1,
const MV2 &rv2)
450 #if(CXSC_INDEX_CHECK)
455 template <
class MV,
class V,
class E>
friend E _mvvsect(
const MV &rv1,
const V &rv2)
456 #if(CXSC_INDEX_CHECK)
461 template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
462 #if(CXSC_INDEX_CHECK)
467 template <
class V,
class MV>
friend V &_vmvsectassign(V &rv,
const MV &v)
468 #if(CXSC_INDEX_CHECK)
473 template <
class MV1,
class MV2,
class E>
friend E _mvmvconv(
const MV1 &rv1,
const MV2 &rv2)
474 #if(CXSC_INDEX_CHECK)
479 template <
class MV,
class V,
class E>
friend E _mvvconv(
const MV &rv1,
const V &rv2)
480 #if(CXSC_INDEX_CHECK)
485 template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
486 #if(CXSC_INDEX_CHECK)
491 template <
class V,
class MV>
friend V &_vmvconvassign(V &rv,
const MV &v)
492 #if(CXSC_INDEX_CHECK)
497 template <
class V,
class MV,
class S>
friend S _vmvcimult(
const V &rv1,
const MV &rv2)
498 #if(CXSC_INDEX_CHECK)
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)
511 #if(CXSC_INDEX_CHECK)
516 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
517 #if(CXSC_INDEX_CHECK)
522 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
523 #if(CXSC_INDEX_CHECK)
528 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
529 #if(CXSC_INDEX_CHECK)
534 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
535 #if(CXSC_INDEX_CHECK)
540 template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
541 #if(CXSC_INDEX_CHECK)
546 template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
547 #if(CXSC_INDEX_CHECK)
552 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s) noexcept;
553 template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
554 #if(CXSC_INDEX_CHECK)
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;
582 template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
583 #if(CXSC_INDEX_CHECK)
589 template <
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)
591 #if(CXSC_INDEX_CHECK)
596 template <
class V,
class M,
class E>
friend E _vmcimult(
const V &v,
const M &m)
597 #if(CXSC_INDEX_CHECK)
602 template <
class V,
class M,
class S>
friend V &_vmimultassign(V &v,
const M &m)
603 #if(CXSC_INDEX_CHECK)
608 template <
class V,
class M,
class S>
friend V &_vmcimultassign(V &v,
const M &m)
609 #if(CXSC_INDEX_CHECK)
614 template <
class MS,
class V,
class E>
friend E _msvcimult(
const MS &ms,
const V &v)
615 #if(CXSC_INDEX_CHECK)
620 template <
class V,
class MS,
class E>
friend E _vmscimult(
const V &v,
const MS &ms)
621 #if(CXSC_INDEX_CHECK)
626 template <
class V,
class MS,
class S>
friend V &_vmscimultassign(V &v,
const MS &ms)
627 #if(CXSC_INDEX_CHECK)
634 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
635 #if(CXSC_INDEX_CHECK)
680 explicit INLINE
civector(
const int &i) noexcept;
682 explicit INLINE
civector(
const class index &i) noexcept;
685 explicit INLINE
civector(
const int &i1,
const int &i2)
687 #if(CXSC_INDEX_CHECK)
699 #if(CXSC_INDEX_CHECK)
706 #if(CXSC_INDEX_CHECK)
732 #if(CXSC_INDEX_CHECK)
739 #if(CXSC_INDEX_CHECK)
760 #if(CXSC_INDEX_CHECK)
767 #if(CXSC_INDEX_CHECK)
788 #if(CXSC_INDEX_CHECK)
795 #if(CXSC_INDEX_CHECK)
816 #if(CXSC_INDEX_CHECK)
823 #if(CXSC_INDEX_CHECK)
843 #if(CXSC_INDEX_CHECK)
850 #if(CXSC_INDEX_CHECK)
871 #if(CXSC_INDEX_CHECK)
878 #if(CXSC_INDEX_CHECK)
899 #if(CXSC_INDEX_CHECK)
906 #if(CXSC_INDEX_CHECK)
950 INLINE ~
civector() {
delete [] dat; }
955 #if(CXSC_INDEX_CHECK)
960 friend INLINE
int Lb(
const civector &rv) noexcept {
return rv.l; }
963 friend INLINE
int Ub(
const civector &rv) noexcept {
return rv.u; }
972 #if(CXSC_INDEX_CHECK)
980 #if(CXSC_INDEX_CHECK)
990 #if(CXSC_INDEX_CHECK)
997 #if(CXSC_INDEX_CHECK)
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;
1350 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
1351 #if(CXSC_INDEX_CHECK)
1356 template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v) noexcept;
1357 template <
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)
1423 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
1424 #if(CXSC_INDEX_CHECK)
1429 template <
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)
1683 friend INLINE
int Lb(
const civector_slice &sl) noexcept {
return sl.start; }
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)
2061 INLINE civector _civector(
const cinterval &r) noexcept;
2065 INLINE civector _civector(
const real &r) noexcept;
2067 INLINE civector _civector(
const rvector_slice &rs) noexcept;
2069 INLINE civector _civector(
const rvector &rs) noexcept;
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"
4533 #ifdef CXSC_USE_BLAS
4534 #define _CXSC_BLAS_CIVECTOR
4535 #include "cxsc_blas.inl"
friend cvector Sup(const civector &v) noexcept
Returns the supremum of the vector.
friend rvector InfIm(const civector_slice &v) noexcept
Returns the infimum of imaginary part of the vector.
cvector mid(const cimatrix_subv &mv) noexcept
Returns the middle of the matrix.
civector_slice & operator|=(const civector &rv) noexcept
Allocates the convex hull of the arguments to the first argument.
Helper class for slices of sparse vectors.
The Data Type civector_slice.
cinterval(void) noexcept
Constructor of class cinterval.
friend rvector InfIm(const civector &v) noexcept
Returns the infimum of imaginary part of the vector.
civector & operator=(const civector &rv) noexcept
Implementation of standard assigning operator.
The Data Type imatrix_slice.
civector_slice(const civector_slice &a) noexcept
Constructor of class civector_slice.
The Data Type imatrix_subv.
The Scalar Type interval.
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
civector operator/(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of division operation.
civector() noexcept
Constructor of class civector.
civector & operator()() noexcept
Operator for accessing the whole vector.
friend civector & SetUb(civector &rv, const int &u) noexcept
Sets the upper bound of the vector.
Helper class for slices of sparse vectors.
civector_slice & operator&=(const civector &rv) noexcept
Allocates the intersection of the arguments to the first argument.
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.
friend int Ub(const civector &rv) noexcept
Returns the upper bound of the vector.
cinterval & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector (read-only)
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
civector_slice(civector &a, const int &lb, const int &ub) noexcept
Constructor of class civector_slice.
The Data Type cmatrix_slice.
The Data Type ivector_slice.
friend rvector SupRe(const civector_slice &v) noexcept
Returns the supremum of real part of the vector.
civector_slice & operator/=(const cinterval &r) noexcept
Implementation of division and allocation operation.
The Data Type rvector_slice.
cinterval & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector (read-only)
civector operator*(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of multiplication operation.
civector_slice & operator=(const scivector_slice &sl)
Implementation of standard assigning operator.
friend cvector Inf(const civector &v) noexcept
Returns the infimum of the vector.
friend rvector SupRe(const civector &v) noexcept
Returns the supremum of real part of the vector.
civector_slice & operator+=(const civector &rv) noexcept
Implementation of addition and allocation operation.
friend int VecLen(const civector_slice &sl) noexcept
Returns the size of the vector.
A sparse complex interval vector.
friend int VecLen(const civector &rv) noexcept
Returns the dimension of the vector.
Helper class for slices of sparse vectors.
The Data Type rmatrix_subv.
civector_slice & operator*=(const cinterval &r) noexcept
Implementation of multiplication and allocation operation.
cimatrix_subv & SetUncheckedInf(cimatrix_subv &iv, const complex &r) noexcept
Returns the matrix with the new unchecked given infimum value.
The Data Type cidotprecision.
The namespace cxsc, providing all functionality of the class library C-XSC.
friend rvector InfRe(const civector &v) noexcept
Returns the infimum of real part of the vector.
friend rvector SupIm(const civector_slice &v) noexcept
Returns the supremum of imaginary part of the vector.
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc) noexcept
Implementation of standard algebraic addition and allocation operation.
friend rvector InfRe(const civector_slice &v) noexcept
Returns the infimum of real part of the vector.
civector_slice & operator()() noexcept
Operator for accessing the whole vector.
Helper class for slices of sparse vectors.
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
civector_slice & operator-=(const civector &rv) noexcept
Implementation of subtraction and allocation operation.
friend cvector Sup(const civector_slice &v) noexcept
Returns the supremum of the vector.
The Data Type rmatrix_slice.
friend cvector Inf(const civector_slice &v) noexcept
Returns the infimum of the vector.
The Data Type cmatrix_subv.
friend civector & SetLb(civector &rv, const int &l) noexcept
Sets the lower bound of the vector.
friend int Lb(const civector_slice &sl) noexcept
Returns the lower bound of the vector.
The Data Type cimatrix_slice.
civector_slice(civector_slice &a, const int &lb, const int &ub) noexcept
Constructor of class civector_slice.
The Scalar Type cinterval.
void Resize(cimatrix &A) noexcept
Resizes the matrix.
The Data Type cvector_slice.
A sparse interval vector.
friend int Ub(const civector_slice &sl) noexcept
Returns the upper bound of the vector.
friend int Lb(const civector &rv) noexcept
Returns the lower bound of the vector.
The Data Type cimatrix_subv.
friend rvector SupIm(const civector &v) noexcept
Returns the supremum of imaginary part of the vector.