26#ifndef _CXSC_LIMATRIX_HPP_INCLUDED
27#define _CXSC_LIMATRIX_HPP_INCLUDED
29#include "xscclass.hpp"
31#include "l_ivector.hpp"
35#include "l_rmatrix.hpp"
54 int size,start,offset;
86#ifdef _CXSC_FRIEND_TPL
88template <
class MV1,
class MV2>
friend MV1 &_mvmvassign(MV1 &v,
const MV2 &rv)
94template <
class MV,
class S>
friend MV &_mvsassign(MV &v,
const S &r)
noexcept;
95template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
101template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv)
noexcept;
102template <
class MV,
class V>
friend MV &_mvvsetinf(MV &v,
const V &rv)
108template <
class MV,
class V>
friend MV &_mvvsetsup(MV &v,
const V &rv)
114template <
class MV,
class V>
friend MV &_mvvusetinf(MV &v,
const V &rv)
120template <
class MV,
class V>
friend MV &_mvvusetsup(MV &v,
const V &rv)
126template <
class MV,
class V>
friend MV &_mvvsetre(MV &v,
const V &rv)
132template <
class MV,
class V>
friend MV &_mvvsetim(MV &v,
const V &rv)
138template <
class MV,
class V>
friend V _mvabs(
const MV &mv)
noexcept;
139template <
class MV,
class V>
friend V _mvdiam(
const MV &mv)
noexcept;
140template <
class MV,
class V>
friend V _mvmid(
const MV &mv)
noexcept;
141template <
class MV,
class V>
friend V _mvinf(
const MV &mv)
noexcept;
142template <
class MV,
class V>
friend V _mvsup(
const MV &mv)
noexcept;
144 template <
class MV,
class S>
friend MV &_mvssetinf(MV &mv,
const S &s)
noexcept;
145 template <
class MV,
class S>
friend MV &_mvssetsup(MV &mv,
const S &s)
noexcept;
146 template <
class MV,
class S>
friend MV &_mvsusetinf(MV &mv,
const S &s)
noexcept;
147 template <
class MV,
class S>
friend MV &_mvsusetsup(MV &mv,
const S &s)
noexcept;
149template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
155template <
class DP,
class MV1,
class MV2>
friend void _mvmvaccu(DP &dp,
const MV1 & rv1,
const MV2 &rv2)
161 template <
class MV1,
class MV2,
class S>
friend S _mvmvlimult(
const MV1 & rv1,
const MV2 &rv2)
167 template <
class V,
class MV,
class S>
friend S _vmvlimult(
const V &rv1,
const MV &rv2)
173 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s)
noexcept;
174 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
180 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
186 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
192 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
198 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
204 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
noexcept;
205template <
class MV,
class S>
friend MV &_mvsmultassign(MV &v,
const S &r)
noexcept;
206template <
class MV,
class S>
friend MV &_mvsplusassign(MV &v,
const S &r)
noexcept;
207template <
class MV,
class S>
friend MV &_mvsminusassign(MV &v,
const S &r)
noexcept;
208template <
class MV,
class S>
friend MV &_mvsdivassign(MV &v,
const S &r)
noexcept;
209template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
215template <
class V,
class MV>
friend V &_vmvplusassign(V &rv,
const MV &v)
221template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
227template <
class V,
class MV>
friend V &_vmvminusassign(V &rv,
const MV &v)
233 template <
class MV1,
class MV2,
class E>
friend E _mvmvconv(
const MV1 &rv1,
const MV2 &rv2)
239 template <
class MV,
class V,
class E>
friend E _mvvconv(
const MV &rv1,
const V &rv2)
245template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
251 template <
class MV1,
class MV2,
class E>
friend E _mvmvsect(
const MV1 &rv1,
const MV2 &rv2)
257 template <
class MV,
class V,
class E>
friend E _mvvsect(
const MV &rv1,
const V &rv2)
263template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
269template <
class V,
class MV>
friend V &_vmvsectassign(V &rv,
const MV &v)
282 explicit INLINE
l_imatrix_subv (
l_interval *d,
const int &l,
const int &u,
const int &s,
const int &st,
const int &o)
noexcept:dat(d),lb(l),ub(u),size(s),start(st),offset(o) { }
719class l_imatrix_slice;
731 int lb1,ub1,lb2,ub2,xsize,ysize;
735#ifdef _CXSC_FRIEND_TPL
737template <
class S,
class M>
friend void _smconstr(S &s,
const M &m)
743template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
749 template <
class M1,
class M2,
class S>
friend M1 &_mmassign(M1 &m1,
const M2 &m,S ms)
noexcept;
750 template <
class M,
class MS2,
class S>
friend M &_mmsassign(M &m,
const MS2 &ms)
noexcept;
751 template <
class MS,
class M>
friend MS &_msmassign(MS &ms,
const M &m)
757 template <
class M,
class S>
friend M &_msassign(M &m,
const S &r)
noexcept;
758template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
764template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v)
noexcept;
765 template <
class M>
friend int _mlb(
const M &m,
const int &i)
771 template <
class M>
friend int _mub(
const M &m,
const int &i)
777 template <
class M>
friend M &_msetlb(M &m,
const int &i,
const int &j)
783 template <
class M>
friend M &_msetub(M &m,
const int &i,
const int &j)
789 template <
class M>
friend void _mresize(M &A)
noexcept;
790 template <
class M,
class S>
friend void _mresize(M &A,
const int &m,
const int &n)
796 template <
class M,
class S>
friend void _mresize(M &A,
const int &m1,
const int &m2,
const int &n1,
const int &n2)
802 template <
class M,
class E>
friend E _mabs(
const M &m)
noexcept;
803 template <
class MS,
class E>
friend E _msabs(
const MS &ms)
noexcept;
804 template <
class M,
class E>
friend E _mdiam(
const M &m)
noexcept;
805 template <
class M,
class E>
friend E _mmid(
const M &m)
noexcept;
806 template <
class M,
class E>
friend E _minf(
const M &m)
noexcept;
807 template <
class M,
class E>
friend E _msup(
const M &m)
noexcept;
808 template <
class M1,
class M2>
friend M1 &_mmsetinf(M1 &m1,
const M2 &m2)
814 template <
class M1,
class M2>
friend M1 &_mmsetsup(M1 &m1,
const M2 &m2)
820 template <
class M1,
class MS2>
friend M1 &_mmssetinf(M1 &m1,
const MS2 &ms2)
826 template <
class M1,
class MS2>
friend M1 &_mmssetsup(M1 &m1,
const MS2 &ms2)
832 template <
class M1,
class M2>
friend M1 &_mmusetinf(M1 &m1,
const M2 &m2)
838 template <
class M1,
class M2>
friend M1 &_mmusetsup(M1 &m1,
const M2 &m2)
844 template <
class M1,
class MS2>
friend M1 &_mmsusetinf(M1 &m1,
const MS2 &ms2)
850 template <
class M1,
class MS2>
friend M1 &_mmsusetsup(M1 &m1,
const MS2 &ms2)
857 template <
class M1,
class M2,
class E>
friend E _mmplus(
const M1 &m1,
const M2 &m2)
863 template <
class M,
class MS,
class E>
friend E _mmsplus(
const M &m,
const MS &ms)
869 template <
class M>
friend M _mminus(
const M &m)
noexcept;
870 template <
class MS,
class E>
friend E _msminus(
const MS &ms)
noexcept;
871 template <
class M1,
class M2,
class E>
friend E _mmminus(
const M1 &m1,
const M2 &m2)
877 template <
class M1,
class M2>
friend M1 &_mmplusassign(M1 &m1,
const M2 &m2)
883 template <
class M,
class MS>
friend M &_mmsplusassign(M &m1,
const MS &ms)
889 template <
class MS,
class M>
friend MS &_msmplusassign(MS &ms,
const M &m1)
895 template <
class MS1,
class MS2,
class E>
friend E _msmsplus(
const MS1 &m1,
const MS2 &m2)
901 template <
class M,
class MS,
class E>
friend E _mmsminus(
const M &m,
const MS &ms)
907 template <
class MS,
class M,
class E>
friend E _msmminus(
const MS &ms,
const M &m)
913 template <
class MS1,
class MS2,
class E>
friend E _msmsminus(
const MS1 &ms1,
const MS2 &ms2)
919 template <
class M1,
class M2>
friend M1 &_mmminusassign(M1 &m1,
const M2 &m2)
925 template <
class M,
class MS>
friend M &_mmsminusassign(M &m1,
const MS &ms)
931 template <
class MS,
class M>
friend MS &_msmminusassign(MS &ms,
const M &m1)
937 template <
class M1,
class M2,
class E>
friend E _mmlimult(
const M1 &m1,
const M2 &m2)
943 template <
class M1,
class M2,
class S>
friend M1 &_mmlimultassign(M1 &m1,
const M2 &m2)
949 template <
class M,
class MS,
class E>
friend E _mmslimult(
const M &m1,
const MS &ms)
955 template <
class MS,
class M,
class E>
friend E _msmlimult(
const MS &ms,
const M &m2)
961 template <
class M,
class MS,
class S>
friend M &_mmslimultassign(M &m1,
const MS &ms)
967 template <
class MS1,
class MS2,
class E>
friend E _msmslimult(
const MS1 &ms1,
const MS2 &ms2)
973 template <
class M1,
class M2,
class E>
friend E _mmconv(
const M1 &m1,
const M2 &m2)
979 template <
class M,
class MS,
class E>
friend E _mmsconv(
const M &m,
const MS &ms)
985 template <
class M1,
class M2>
friend M1 &_mmconvassign(M1 &m1,
const M2 &m2)
991 template <
class M,
class MS>
friend M &_mmsconvassign(M &m1,
const MS &ms)
997 template <
class MS,
class M>
friend MS &_msmconvassign(MS &ms,
const M &m1)
1003 template <
class MS1,
class MS2,
class E>
friend E _msmsconv(
const MS1 &m1,
const MS2 &m2)
1004#if(CXSC_INDEX_CHECK)
1009 template <
class M1,
class M2,
class E>
friend E _mmsect(
const M1 &m1,
const M2 &m2)
1010#if(CXSC_INDEX_CHECK)
1015 template <
class M,
class MS,
class E>
friend E _mmssect(
const M &m,
const MS &ms)
1016#if(CXSC_INDEX_CHECK)
1021 template <
class M1,
class M2>
friend M1 &_mmsectassign(M1 &m1,
const M2 &m2)
1022#if(CXSC_INDEX_CHECK)
1027 template <
class M,
class MS>
friend M &_mmssectassign(M &m1,
const MS &ms)
1028#if(CXSC_INDEX_CHECK)
1033 template <
class MS,
class M>
friend MS &_msmsectassign(MS &ms,
const M &m1)
1034#if(CXSC_INDEX_CHECK)
1039 template <
class MS1,
class MS2,
class E>
friend E _msmssect(
const MS1 &m1,
const MS2 &m2)
1040#if(CXSC_INDEX_CHECK)
1046 template <
class S,
class M,
class E>
friend E _smmult(
const S &c,
const M &m)
noexcept;
1047 template <
class M,
class S>
friend M &_msmultassign(M &m,
const S &c)
noexcept;
1048 template <
class S,
class MS,
class E>
friend E _smsmult(
const S &c,
const MS &ms)
noexcept;
1049 template <
class M,
class S,
class E>
friend E _msdiv(
const M &m,
const S &c)
noexcept;
1050 template <
class M,
class S>
friend M &_msdivassign(M &m,
const S &c)
noexcept;
1051 template <
class MS,
class S,
class E>
friend E _mssdiv(
const MS &ms,
const S &c)
noexcept;
1053 template <
class M,
class V,
class E>
friend E _mvlimult(
const M &m,
const V &v)
1054#if(CXSC_INDEX_CHECK)
1059 template <
class V,
class M,
class E>
friend E _vmlimult(
const V &v,
const M &m)
1060#if(CXSC_INDEX_CHECK)
1065 template <
class V,
class M,
class S>
friend V &_vmlimultassign(V &v,
const M &m)
1066#if(CXSC_INDEX_CHECK)
1071 template <
class VS,
class M,
class S>
friend VS &_vsmlimultassign(VS &v,
const M &m)
1072#if(CXSC_INDEX_CHECK)
1078 template <
class M>
friend void *_mvoid(
const M &m)
noexcept;
1079 template <
class M>
friend bool _mnot(
const M &m)
noexcept;
1080 template <
class MS>
friend void *_msvoid(
const MS &ms)
noexcept;
1081 template <
class MS>
friend bool _msnot(
const MS &ms)
noexcept;
1082 template <
class M1,
class M2>
friend bool _mmeq(
const M1 &m1,
const M2 &m2)
noexcept;
1083 template <
class M1,
class M2>
friend bool _mmneq(
const M1 &m1,
const M2 &m2)
noexcept;
1084 template <
class M1,
class M2>
friend bool _mmless(
const M1 &m1,
const M2 &m2)
noexcept;
1085 template <
class M1,
class M2>
friend bool _mmleq(
const M1 &m1,
const M2 &m2)
noexcept;
1086 template <
class M,
class MS>
friend bool _mmseq(
const M &m1,
const MS &ms)
noexcept;
1087 template <
class M,
class MS>
friend bool _mmsneq(
const M &m1,
const MS &ms)
noexcept;
1088 template <
class M,
class MS>
friend bool _mmsless(
const M &m1,
const MS &ms)
noexcept;
1089 template <
class M,
class MS>
friend bool _mmsleq(
const M &m1,
const MS &ms)
noexcept;
1090 template <
class MS,
class M>
friend bool _msmless(
const MS &ms,
const M &m1)
noexcept;
1091 template <
class MS,
class M>
friend bool _msmleq(
const MS &ms,
const M &m1)
noexcept;
1092 template <
class M>
friend std::ostream &_mout(std::ostream &s,
const M &r)
noexcept;
1093 template <
class M>
friend std::istream &_min(std::istream &s,M &r)
noexcept;
1096 template <
class M1,
class MS2>
friend M1 &_mmssetre(M1 &m1,
const MS2 &ms2)
1097#if(CXSC_INDEX_CHECK)
1102 template <
class M1,
class MS2>
friend M1 &_mmssetim(M1 &m1,
const MS2 &ms2)
1103#if(CXSC_INDEX_CHECK)
1110 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
1111#if(CXSC_INDEX_CHECK)
1116 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
1117#if(CXSC_INDEX_CHECK)
1136 explicit INLINE
l_imatrix(
const int &m,
const int &n)
1137#if(CXSC_INDEX_CHECK)
1143 explicit INLINE
l_imatrix(
const int &m1,
const int &n1,
const int &m2,
const int &n2)
1144#if(CXSC_INDEX_CHECK)
1233 INLINE
~l_imatrix()
noexcept {
delete [] dat; }
1239#if(CXSC_INDEX_CHECK)
1246#if(CXSC_INDEX_CHECK)
1255#if(CXSC_INDEX_CHECK)
1262#if(CXSC_INDEX_CHECK)
1267 INLINE
operator void*()
noexcept;
1284 int offset1,offset2,mxsize,mysize;
1285 int start1,end1,start2,end2,sxsize,sysize;
1289#ifdef _CXSC_FRIEND_TPL
1291template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
1292#if(CXSC_INDEX_CHECK)
1297 template <
class MS,
class M>
friend MS &_msmassign(MS &ms,
const M &m)
1298#if(CXSC_INDEX_CHECK)
1303 template <
class MS1,
class MS2>
friend MS1 &_msmsassign(MS1 &ms1,
const MS2 &ms)
1304#if(CXSC_INDEX_CHECK)
1309 template <
class M,
class MS2,
class S>
friend M &_mmsassign(M &m,
const MS2 &ms)
noexcept;
1310 template <
class MS,
class S>
friend MS &_mssassign(MS &ms,
const S &r)
noexcept;
1311 template <
class MS>
friend int _mslb(
const MS &ms,
const int &i)
1312#if(CXSC_INDEX_CHECK)
1317 template <
class MS>
friend int _msub(
const MS &ms,
const int &i)
1318#if(CXSC_INDEX_CHECK)
1323 template <
class MS,
class E>
friend E _msabs(
const MS &ms)
noexcept;
1324 template <
class MS,
class E>
friend E _msinf(
const MS &ms)
noexcept;
1325 template <
class MS,
class E>
friend E _mssup(
const MS &ms)
noexcept;
1326 template <
class MS,
class E>
friend E _msdiam(
const MS &ms)
noexcept;
1327 template <
class MS,
class E>
friend E _msmid(
const MS &ms)
noexcept;
1328 template <
class MS1,
class M2>
friend MS1 &_msmsetinf(MS1 &ms1,
const M2 &m2)
1329#if(CXSC_INDEX_CHECK)
1334 template <
class MS1,
class M2>
friend MS1 &_msmsetsup(MS1 &ms1,
const M2 &m2)
1335#if(CXSC_INDEX_CHECK)
1340 template <
class MS1,
class MS2>
friend MS1 &_msmssetinf(MS1 &ms1,
const MS2 &ms2)
1341#if(CXSC_INDEX_CHECK)
1346 template <
class MS1,
class MS2>
friend MS1 &_msmssetsup(MS1 &ms1,
const MS2 &ms2)
1347#if(CXSC_INDEX_CHECK)
1352 template <
class MS1,
class M2>
friend MS1 &_msmusetinf(MS1 &ms1,
const M2 &m2)
1353#if(CXSC_INDEX_CHECK)
1358 template <
class MS1,
class M2>
friend MS1 &_msmusetsup(MS1 &ms1,
const M2 &m2)
1359#if(CXSC_INDEX_CHECK)
1364 template <
class MS1,
class MS2>
friend MS1 &_msmsusetinf(MS1 &ms1,
const MS2 &ms2)
1365#if(CXSC_INDEX_CHECK)
1370 template <
class MS1,
class MS2>
friend MS1 &_msmsusetsup(MS1 &ms1,
const MS2 &ms2)
1371#if(CXSC_INDEX_CHECK)
1377 template <
class MS,
class E>
friend E _msminus(
const MS &ms)
noexcept;
1378 template <
class M,
class MS,
class E>
friend E _mmsplus(
const M &m,
const MS &ms)
1379#if(CXSC_INDEX_CHECK)
1384 template <
class MS1,
class MS2,
class E>
friend E _msmsplus(
const MS1 &m1,
const MS2 &m2)
1385#if(CXSC_INDEX_CHECK)
1390 template <
class M,
class MS>
friend M &_mmsplusassign(M &m1,
const MS &ms)
1391#if(CXSC_INDEX_CHECK)
1396 template <
class MS,
class M>
friend MS &_msmplusassign(MS &ms,
const M &m1)
1397#if(CXSC_INDEX_CHECK)
1402 template <
class MS1,
class MS2>
friend MS1 &_msmsplusassign(MS1 &ms1,
const MS2 &ms2)
1403#if(CXSC_INDEX_CHECK)
1408 template <
class M,
class MS,
class E>
friend E _mmsminus(
const M &m,
const MS &ms)
1409#if(CXSC_INDEX_CHECK)
1414 template <
class MS,
class M,
class E>
friend E _msmminus(
const MS &ms,
const M &m)
1415#if(CXSC_INDEX_CHECK)
1420 template <
class MS1,
class MS2,
class E>
friend E _msmsminus(
const MS1 &ms1,
const MS2 &ms2)
1421#if(CXSC_INDEX_CHECK)
1426 template <
class M,
class MS>
friend M &_mmsminusassign(M &m1,
const MS &ms)
1427#if(CXSC_INDEX_CHECK)
1432 template <
class MS,
class M>
friend MS &_msmminusassign(MS &ms,
const M &m1)
1433#if(CXSC_INDEX_CHECK)
1438 template <
class MS1,
class MS2>
friend MS1 &_msmsminusassign(MS1 &ms1,
const MS2 &ms2)
1439#if(CXSC_INDEX_CHECK)
1444 template <
class M,
class MS,
class E>
friend E _mmslimult(
const M &m1,
const MS &ms)
1445#if(CXSC_INDEX_CHECK)
1450 template <
class MS,
class M,
class E>
friend E _msmlimult(
const MS &ms,
const M &m2)
1451#if(CXSC_INDEX_CHECK)
1456 template <
class M,
class MS,
class S>
friend M &_mmslimultassign(M &m1,
const MS &ms)
1457#if(CXSC_INDEX_CHECK)
1462 template <
class MS1,
class MS2,
class E>
friend E _msmslimult(
const MS1 &ms1,
const MS2 &ms2)
1463#if(CXSC_INDEX_CHECK)
1468 template <
class M,
class MS,
class E>
friend E _mmsconv(
const M &m,
const MS &ms)
1469#if(CXSC_INDEX_CHECK)
1474 template <
class M,
class MS>
friend M &_mmsconvassign(M &m1,
const MS &ms)
1475#if(CXSC_INDEX_CHECK)
1480 template <
class MS,
class M>
friend MS &_msmconvassign(MS &ms,
const M &m1)
1481#if(CXSC_INDEX_CHECK)
1486 template <
class MS1,
class MS2>
friend MS1 &_msmsconvassign(MS1 &ms1,
const MS2 &ms2)
1487#if(CXSC_INDEX_CHECK)
1492 template <
class MS1,
class MS2,
class E>
friend E _msmsconv(
const MS1 &m1,
const MS2 &m2)
1493#if(CXSC_INDEX_CHECK)
1498 template <
class M,
class MS,
class E>
friend E _mmssect(
const M &m,
const MS &ms)
1499#if(CXSC_INDEX_CHECK)
1504 template <
class M,
class MS>
friend M &_mmssectassign(M &m1,
const MS &ms)
1505#if(CXSC_INDEX_CHECK)
1510 template <
class MS,
class M>
friend MS &_msmsectassign(MS &ms,
const M &m1)
1511#if(CXSC_INDEX_CHECK)
1516 template <
class MS1,
class MS2>
friend MS1 &_msmssectassign(MS1 &ms1,
const MS2 &ms2)
1517#if(CXSC_INDEX_CHECK)
1522 template <
class MS1,
class MS2,
class E>
friend E _msmssect(
const MS1 &m1,
const MS2 &m2)
1523#if(CXSC_INDEX_CHECK)
1529 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
1530#if(CXSC_INDEX_CHECK)
1535 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
1536#if(CXSC_INDEX_CHECK)
1541 template <
class V,
class MS,
class S>
friend V &_vmslimultassign(V &v,
const MS &ms)
1542#if(CXSC_INDEX_CHECK)
1548 template <
class S,
class MS,
class E>
friend E _smsmult(
const S &c,
const MS &ms)
noexcept;
1549 template <
class MS,
class S>
friend MS &_mssmultassign(MS &ms,
const S &c)
noexcept;
1550 template <
class MS,
class S,
class E>
friend E _mssdiv(
const MS &ms,
const S &c)
noexcept;
1551 template <
class MS,
class S>
friend MS &_mssdivassign(MS &ms,
const S &c)
noexcept;
1553 template <
class MS>
friend void *_msvoid(
const MS &ms)
noexcept;
1554 template <
class MS>
friend bool _msnot(
const MS &ms)
noexcept;
1555 template <
class M,
class MS>
friend bool _mmseq(
const M &m1,
const MS &ms)
noexcept;
1556 template <
class M,
class MS>
friend bool _mmsneq(
const M &m1,
const MS &ms)
noexcept;
1557 template <
class M,
class MS>
friend bool _mmsless(
const M &m1,
const MS &ms)
noexcept;
1558 template <
class M,
class MS>
friend bool _mmsleq(
const M &m1,
const MS &ms)
noexcept;
1559 template <
class MS,
class M>
friend bool _msmless(
const MS &ms,
const M &m1)
noexcept;
1560 template <
class MS,
class M>
friend bool _msmleq(
const MS &ms,
const M &m1)
noexcept;
1561 template <
class MS1,
class MS2>
friend bool _msmseq(
const MS1 &ms1,
const MS2 &ms2)
noexcept;
1562 template <
class MS1,
class MS2>
friend bool _msmsneq(
const MS1 &ms1,
const MS2 &ms2)
noexcept;
1563 template <
class MS1,
class MS2>
friend bool _msmsless(
const MS1 &ms1,
const MS2 &ms2)
noexcept;
1564 template <
class MS1,
class MS2>
friend bool _msmsleq(
const MS1 &ms1,
const MS2 &ms2)
noexcept;
1565 template <
class MS>
friend std::ostream &_msout(std::ostream &s,
const MS &r)
noexcept;
1566 template <
class MS>
friend std::istream &_msin(std::istream &s,MS &r)
noexcept;
1574 explicit INLINE
l_imatrix_slice(
l_imatrix &a,
const int &l1,
const int &u1,
const int &l2,
const int &u2)
noexcept:dat(a.dat),offset1(l1-a.lb1),offset2(l2-a.lb2),mxsize(a.xsize),mysize(a.ysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { }
1576 explicit INLINE
l_imatrix_slice(
l_imatrix_slice &a,
const int &l1,
const int &u1,
const int &l2,
const int &u2)
noexcept:dat(a.dat),offset1(a.offset1+l1-a.start1),offset2(a.offset2+l2-a.start2),mxsize(a.mxsize),mysize(a.mysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { }
1579 INLINE
l_imatrix_slice(
const l_imatrix_slice &ms)
noexcept:dat(ms.dat),offset1(ms.offset1),offset2(ms.offset2),mxsize(ms.mxsize),mysize(ms.mysize),start1(ms.start1),end1(ms.end1),start2(ms.start2),end2(ms.end2),sxsize(ms.sxsize),sysize(ms.sysize) { }
1585#if(CXSC_INDEX_CHECK)
1593#if(CXSC_INDEX_CHECK)
1600#if(CXSC_INDEX_CHECK)
1609#if(CXSC_INDEX_CHECK)
1616#if(CXSC_INDEX_CHECK)
1623#if(CXSC_INDEX_CHECK)
1631#if(CXSC_INDEX_CHECK)
1638#if(CXSC_INDEX_CHECK)
1647#if(CXSC_INDEX_CHECK)
1654#if(CXSC_INDEX_CHECK)
1661#if(CXSC_INDEX_CHECK)
1670#if(CXSC_INDEX_CHECK)
1677#if(CXSC_INDEX_CHECK)
1686#if(CXSC_INDEX_CHECK)
1693#if(CXSC_INDEX_CHECK)
1700#if(CXSC_INDEX_CHECK)
1709#if(CXSC_INDEX_CHECK)
1716#if(CXSC_INDEX_CHECK)
1725#if(CXSC_INDEX_CHECK)
1732#if(CXSC_INDEX_CHECK)
1739#if(CXSC_INDEX_CHECK)
1747#if(CXSC_INDEX_CHECK)
1754#if(CXSC_INDEX_CHECK)
1763#if(CXSC_INDEX_CHECK)
1770#if(CXSC_INDEX_CHECK)
1775 INLINE
operator void*()
noexcept;
1787#if(CXSC_INDEX_CHECK)
1794#if(CXSC_INDEX_CHECK)
1801#if(CXSC_INDEX_CHECK)
1808#if(CXSC_INDEX_CHECK)
1815#if(CXSC_INDEX_CHECK)
1822#if(CXSC_INDEX_CHECK)
1829#if(CXSC_INDEX_CHECK)
1836#if(CXSC_INDEX_CHECK)
1843#if(CXSC_INDEX_CHECK)
1850#if(CXSC_INDEX_CHECK)
1866#if(CXSC_INDEX_CHECK)
1873#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)
1945#if(CXSC_INDEX_CHECK)
1952#if(CXSC_INDEX_CHECK)
1959#if(CXSC_INDEX_CHECK)
1966#if(CXSC_INDEX_CHECK)
1973#if(CXSC_INDEX_CHECK)
1980#if(CXSC_INDEX_CHECK)
1987#if(CXSC_INDEX_CHECK)
1994#if(CXSC_INDEX_CHECK)
2001#if(CXSC_INDEX_CHECK)
2008#if(CXSC_INDEX_CHECK)
2024#if(CXSC_INDEX_CHECK)
2031#if(CXSC_INDEX_CHECK)
2038#if(CXSC_INDEX_CHECK)
2045#if(CXSC_INDEX_CHECK)
2052#if(CXSC_INDEX_CHECK)
2059#if(CXSC_INDEX_CHECK)
2066#if(CXSC_INDEX_CHECK)
2073#if(CXSC_INDEX_CHECK)
2080#if(CXSC_INDEX_CHECK)
2087#if(CXSC_INDEX_CHECK)
2120#if(CXSC_INDEX_CHECK)
2127#if(CXSC_INDEX_CHECK)
2134#if(CXSC_INDEX_CHECK)
2141#if(CXSC_INDEX_CHECK)
2161#if(CXSC_INDEX_CHECK)
2168#if(CXSC_INDEX_CHECK)
2175#if(CXSC_INDEX_CHECK)
2182#if(CXSC_INDEX_CHECK)
2189#if(CXSC_INDEX_CHECK)
2197#if(CXSC_INDEX_CHECK)
2204#if(CXSC_INDEX_CHECK)
2211#if(CXSC_INDEX_CHECK)
2218#if(CXSC_INDEX_CHECK)
2225#if(CXSC_INDEX_CHECK)
2233#if(CXSC_INDEX_CHECK)
2240#if(CXSC_INDEX_CHECK)
2247#if(CXSC_INDEX_CHECK)
2254#if(CXSC_INDEX_CHECK)
2261#if(CXSC_INDEX_CHECK)
2269#if(CXSC_INDEX_CHECK)
2276#if(CXSC_INDEX_CHECK)
2283#if(CXSC_INDEX_CHECK)
2290#if(CXSC_INDEX_CHECK)
2297#if(CXSC_INDEX_CHECK)
2307#if(CXSC_INDEX_CHECK)
2314#if(CXSC_INDEX_CHECK)
2321#if(CXSC_INDEX_CHECK)
2328#if(CXSC_INDEX_CHECK)
2335#if(CXSC_INDEX_CHECK)
2342#if(CXSC_INDEX_CHECK)
2352#if(CXSC_INDEX_CHECK)
2359#if(CXSC_INDEX_CHECK)
2366#if(CXSC_INDEX_CHECK)
2373#if(CXSC_INDEX_CHECK)
2380#if(CXSC_INDEX_CHECK)
2387#if(CXSC_INDEX_CHECK)
2397#if(CXSC_INDEX_CHECK)
2404#if(CXSC_INDEX_CHECK)
2411#if(CXSC_INDEX_CHECK)
2418#if(CXSC_INDEX_CHECK)
2425#if(CXSC_INDEX_CHECK)
2432#if(CXSC_INDEX_CHECK)
2453#if(CXSC_INDEX_CHECK)
2460#if(CXSC_INDEX_CHECK)
2467#if(CXSC_INDEX_CHECK)
2474#if(CXSC_INDEX_CHECK)
2481#if(CXSC_INDEX_CHECK)
2488#if(CXSC_INDEX_CHECK)
2497#if(CXSC_INDEX_CHECK)
2503 INLINE
void Resize(
l_imatrix &A,
const int &m1,
const int &m2,
const int &n1,
const int &n2)
2504#if(CXSC_INDEX_CHECK)
2532#if(CXSC_INDEX_CHECK)
2539#if(CXSC_INDEX_CHECK)
2546#if(CXSC_INDEX_CHECK)
2553#if(CXSC_INDEX_CHECK)
2560#if(CXSC_INDEX_CHECK)
2567#if(CXSC_INDEX_CHECK)
2574#if(CXSC_INDEX_CHECK)
2581#if(CXSC_INDEX_CHECK)
2588#if(CXSC_INDEX_CHECK)
2595#if(CXSC_INDEX_CHECK)
2602#if(CXSC_INDEX_CHECK)
2609#if(CXSC_INDEX_CHECK)
2616#if(CXSC_INDEX_CHECK)
2623#if(CXSC_INDEX_CHECK)
2630#if(CXSC_INDEX_CHECK)
2637#if(CXSC_INDEX_CHECK)
2767#if(CXSC_INDEX_CHECK)
2774#if(CXSC_INDEX_CHECK)
2781#if(CXSC_INDEX_CHECK)
2788#if(CXSC_INDEX_CHECK)
2795#if(CXSC_INDEX_CHECK)
2802#if(CXSC_INDEX_CHECK)
2810#if(CXSC_INDEX_CHECK)
2817#if(CXSC_INDEX_CHECK)
2827#if(CXSC_INDEX_CHECK)
2834#if(CXSC_INDEX_CHECK)
2841#if(CXSC_INDEX_CHECK)
2849#if(CXSC_INDEX_CHECK)
2856#if(CXSC_INDEX_CHECK)
2866#if(CXSC_INDEX_CHECK)
2873#if(CXSC_INDEX_CHECK)
2880#if(CXSC_INDEX_CHECK)
2888#if(CXSC_INDEX_CHECK)
2895#if(CXSC_INDEX_CHECK)
2905#if(CXSC_INDEX_CHECK)
2912#if(CXSC_INDEX_CHECK)
2919#if(CXSC_INDEX_CHECK)
2927#if(CXSC_INDEX_CHECK)
2934#if(CXSC_INDEX_CHECK)
2949#if(CXSC_INDEX_CHECK)
2956#if(CXSC_INDEX_CHECK)
2963#if(CXSC_INDEX_CHECK)
2970#if(CXSC_INDEX_CHECK)
2977#if(CXSC_INDEX_CHECK)
2984#if(CXSC_INDEX_CHECK)
2996#if(CXSC_INDEX_CHECK)
3003#if(CXSC_INDEX_CHECK)
3010#if(CXSC_INDEX_CHECK)
3017#if(CXSC_INDEX_CHECK)
3024#if(CXSC_INDEX_CHECK)
3031#if(CXSC_INDEX_CHECK)
3039#if(CXSC_INDEX_CHECK)
3046#if(CXSC_INDEX_CHECK)
3053#if(CXSC_INDEX_CHECK)
3060#if(CXSC_INDEX_CHECK)
3067#if(CXSC_INDEX_CHECK)
3074#if(CXSC_INDEX_CHECK)
3083#if(CXSC_INDEX_CHECK)
3090#if(CXSC_INDEX_CHECK)
3097#if(CXSC_INDEX_CHECK)
3104#if(CXSC_INDEX_CHECK)
3111#if(CXSC_INDEX_CHECK)
3118#if(CXSC_INDEX_CHECK)
3126#if(CXSC_INDEX_CHECK)
3133#if(CXSC_INDEX_CHECK)
3140#if(CXSC_INDEX_CHECK)
3147#if(CXSC_INDEX_CHECK)
3154#if(CXSC_INDEX_CHECK)
3161#if(CXSC_INDEX_CHECK)
3170#if(CXSC_INDEX_CHECK)
3177#if(CXSC_INDEX_CHECK)
3184#if(CXSC_INDEX_CHECK)
3191#if(CXSC_INDEX_CHECK)
3198#if(CXSC_INDEX_CHECK)
3205#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)
3255#if(CXSC_INDEX_CHECK)
3262#if(CXSC_INDEX_CHECK)
3269#if(CXSC_INDEX_CHECK)
3276#if(CXSC_INDEX_CHECK)
3283#if(CXSC_INDEX_CHECK)
3290#if(CXSC_INDEX_CHECK)
3297#if(CXSC_INDEX_CHECK)
3304#if(CXSC_INDEX_CHECK)
3312#if(CXSC_INDEX_CHECK)
3319#if(CXSC_INDEX_CHECK)
3326#if(CXSC_INDEX_CHECK)
3333#if(CXSC_INDEX_CHECK)
3340#if(CXSC_INDEX_CHECK)
3347#if(CXSC_INDEX_CHECK)
3354#if(CXSC_INDEX_CHECK)
3361#if(CXSC_INDEX_CHECK)
3368#if(CXSC_INDEX_CHECK)
3375#if(CXSC_INDEX_CHECK)
3383#if(CXSC_INDEX_CHECK)
3390#if(CXSC_INDEX_CHECK)
3397#if(CXSC_INDEX_CHECK)
3404#if(CXSC_INDEX_CHECK)
3411#if(CXSC_INDEX_CHECK)
3418#if(CXSC_INDEX_CHECK)
3425#if(CXSC_INDEX_CHECK)
3432#if(CXSC_INDEX_CHECK)
3439#if(CXSC_INDEX_CHECK)
3446#if(CXSC_INDEX_CHECK)
3454#if(CXSC_INDEX_CHECK)
3461#if(CXSC_INDEX_CHECK)
3468#if(CXSC_INDEX_CHECK)
3475#if(CXSC_INDEX_CHECK)
3482#if(CXSC_INDEX_CHECK)
3489#if(CXSC_INDEX_CHECK)
3496#if(CXSC_INDEX_CHECK)
3503#if(CXSC_INDEX_CHECK)
3510#if(CXSC_INDEX_CHECK)
3517#if(CXSC_INDEX_CHECK)
3526#if(CXSC_INDEX_CHECK)
3533#if(CXSC_INDEX_CHECK)
3540#if(CXSC_INDEX_CHECK)
3547#if(CXSC_INDEX_CHECK)
3554#if(CXSC_INDEX_CHECK)
3561#if(CXSC_INDEX_CHECK)
3568#if(CXSC_INDEX_CHECK)
3575#if(CXSC_INDEX_CHECK)
3582#if(CXSC_INDEX_CHECK)
3589#if(CXSC_INDEX_CHECK)
3597#if(CXSC_INDEX_CHECK)
3604#if(CXSC_INDEX_CHECK)
3611#if(CXSC_INDEX_CHECK)
3618#if(CXSC_INDEX_CHECK)
3625#if(CXSC_INDEX_CHECK)
3632#if(CXSC_INDEX_CHECK)
3639#if(CXSC_INDEX_CHECK)
3646#if(CXSC_INDEX_CHECK)
3653#if(CXSC_INDEX_CHECK)
3660#if(CXSC_INDEX_CHECK)
3668#if(CXSC_INDEX_CHECK)
3675#if(CXSC_INDEX_CHECK)
3682#if(CXSC_INDEX_CHECK)
3689#if(CXSC_INDEX_CHECK)
3696#if(CXSC_INDEX_CHECK)
3703#if(CXSC_INDEX_CHECK)
3710#if(CXSC_INDEX_CHECK)
3717#if(CXSC_INDEX_CHECK)
3724#if(CXSC_INDEX_CHECK)
3731#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)
3824#if(CXSC_INDEX_CHECK)
3831#if(CXSC_INDEX_CHECK)
3838#if(CXSC_INDEX_CHECK)
3845#if(CXSC_INDEX_CHECK)
3852#if(CXSC_INDEX_CHECK)
3859#if(CXSC_INDEX_CHECK)
3866#if(CXSC_INDEX_CHECK)
3873#if(CXSC_INDEX_CHECK)
3882#if(CXSC_INDEX_CHECK)
3889#if(CXSC_INDEX_CHECK)
3896#if(CXSC_INDEX_CHECK)
3903#if(CXSC_INDEX_CHECK)
3910#if(CXSC_INDEX_CHECK)
3917#if(CXSC_INDEX_CHECK)
3924#if(CXSC_INDEX_CHECK)
3931#if(CXSC_INDEX_CHECK)
3938#if(CXSC_INDEX_CHECK)
3945#if(CXSC_INDEX_CHECK)
3953#if(CXSC_INDEX_CHECK)
3960#if(CXSC_INDEX_CHECK)
3967#if(CXSC_INDEX_CHECK)
3974#if(CXSC_INDEX_CHECK)
3981#if(CXSC_INDEX_CHECK)
3988#if(CXSC_INDEX_CHECK)
3995#if(CXSC_INDEX_CHECK)
4002#if(CXSC_INDEX_CHECK)
4009#if(CXSC_INDEX_CHECK)
4016#if(CXSC_INDEX_CHECK)
4024#if(CXSC_INDEX_CHECK)
4031#if(CXSC_INDEX_CHECK)
4038#if(CXSC_INDEX_CHECK)
4045#if(CXSC_INDEX_CHECK)
4052#if(CXSC_INDEX_CHECK)
4059#if(CXSC_INDEX_CHECK)
4066#if(CXSC_INDEX_CHECK)
4073#if(CXSC_INDEX_CHECK)
4080#if(CXSC_INDEX_CHECK)
4087#if(CXSC_INDEX_CHECK)
4095#if(CXSC_INDEX_CHECK)
4102#if(CXSC_INDEX_CHECK)
4109#if(CXSC_INDEX_CHECK)
4116#if(CXSC_INDEX_CHECK)
4123#if(CXSC_INDEX_CHECK)
4130#if(CXSC_INDEX_CHECK)
4137#if(CXSC_INDEX_CHECK)
4144#if(CXSC_INDEX_CHECK)
4151#if(CXSC_INDEX_CHECK)
4158#if(CXSC_INDEX_CHECK)
4166#if(CXSC_INDEX_CHECK)
4173#if(CXSC_INDEX_CHECK)
4180#if(CXSC_INDEX_CHECK)
4187#if(CXSC_INDEX_CHECK)
4194#if(CXSC_INDEX_CHECK)
4201#if(CXSC_INDEX_CHECK)
4208#if(CXSC_INDEX_CHECK)
4215#if(CXSC_INDEX_CHECK)
4222#if(CXSC_INDEX_CHECK)
4229#if(CXSC_INDEX_CHECK)
4238#if(CXSC_INDEX_CHECK)
4245#if(CXSC_INDEX_CHECK)
4252#if(CXSC_INDEX_CHECK)
4259#if(CXSC_INDEX_CHECK)
4266#if(CXSC_INDEX_CHECK)
4273#if(CXSC_INDEX_CHECK)
4280#if(CXSC_INDEX_CHECK)
4287#if(CXSC_INDEX_CHECK)
4295#if(CXSC_INDEX_CHECK)
4302#if(CXSC_INDEX_CHECK)
4309#if(CXSC_INDEX_CHECK)
4316#if(CXSC_INDEX_CHECK)
4323#if(CXSC_INDEX_CHECK)
4330#if(CXSC_INDEX_CHECK)
4337#if(CXSC_INDEX_CHECK)
4344#if(CXSC_INDEX_CHECK)
4352#if(CXSC_INDEX_CHECK)
4359#if(CXSC_INDEX_CHECK)
4366#if(CXSC_INDEX_CHECK)
4373#if(CXSC_INDEX_CHECK)
4380#if(CXSC_INDEX_CHECK)
4387#if(CXSC_INDEX_CHECK)
4394#if(CXSC_INDEX_CHECK)
4401#if(CXSC_INDEX_CHECK)
4409#if(CXSC_INDEX_CHECK)
4416#if(CXSC_INDEX_CHECK)
4423#if(CXSC_INDEX_CHECK)
4430#if(CXSC_INDEX_CHECK)
4437#if(CXSC_INDEX_CHECK)
4444#if(CXSC_INDEX_CHECK)
4451#if(CXSC_INDEX_CHECK)
4458#if(CXSC_INDEX_CHECK)
4466#if(CXSC_INDEX_CHECK)
4473#if(CXSC_INDEX_CHECK)
4480#if(CXSC_INDEX_CHECK)
4487#if(CXSC_INDEX_CHECK)
4494#if(CXSC_INDEX_CHECK)
4501#if(CXSC_INDEX_CHECK)
4508#if(CXSC_INDEX_CHECK)
4515#if(CXSC_INDEX_CHECK)
4524#if(CXSC_INDEX_CHECK)
4531#if(CXSC_INDEX_CHECK)
4538#if(CXSC_INDEX_CHECK)
4545#if(CXSC_INDEX_CHECK)
4552#if(CXSC_INDEX_CHECK)
4559#if(CXSC_INDEX_CHECK)
4566#if(CXSC_INDEX_CHECK)
4573#if(CXSC_INDEX_CHECK)
4583#if(CXSC_INDEX_CHECK)
4590#if(CXSC_INDEX_CHECK)
4597#if(CXSC_INDEX_CHECK)
4604#if(CXSC_INDEX_CHECK)
4611#if(CXSC_INDEX_CHECK)
4618#if(CXSC_INDEX_CHECK)
4625#if(CXSC_INDEX_CHECK)
4632#if(CXSC_INDEX_CHECK)
4686 INLINE
bool operator !(
const l_imatrix &ms)
noexcept;
4693 INLINE std::ostream &operator <<(std::ostream &s,
const l_imatrix &r)
noexcept;
4695 INLINE std::ostream &operator <<(std::ostream &s,
const l_imatrix_slice &r)
noexcept;
4697 INLINE std::istream &operator >>(std::istream &s,
l_imatrix &r)
noexcept;
4699 INLINE std::istream &operator >>(std::istream &s,
l_imatrix_slice &r)
noexcept;
4720#ifdef _CXSC_INCL_INL
4721#include "matrix.inl"
4722#include "l_imatrix.inl"
The Data Type idotprecision.
The Data Type imatrix_slice.
The Data Type imatrix_subv.
The Scalar Type interval.
The Data Type ivector_slice.
The Multiple-Precision Data Type l_imatrix_slice.
l_imatrix_subv operator[](const int &i) noexcept
Operator for accessing a single row of the matrix.
l_imatrix_slice & operator/=(const l_interval &c) noexcept
Implementation of division and allocation operation.
l_imatrix_slice & operator=(const l_imatrix &m) noexcept
Implementation of standard assigning operator.
l_imatrix_slice & operator()() noexcept
Operator for accessing the whole matrix.
l_imatrix_slice(l_imatrix_slice &a, const int &l1, const int &u1, const int &l2, const int &u2) noexcept
Constructor of class l_imatrix_slice.
l_imatrix_slice & operator*=(const l_interval &c) noexcept
Implementation of multiplication and allocation operation.
l_imatrix_slice(const l_imatrix_slice &ms) noexcept
Constructor of class l_imatrix_slice.
l_imatrix_slice & operator&=(const l_imatrix &m1) noexcept
Allocates the intersection of the arguments to the first argument.
l_imatrix_slice & operator|=(const l_imatrix &m1) noexcept
Allocates the convex hull of the arguments to the first argument.
l_imatrix_slice & operator-=(const l_interval &c) noexcept
Implementation of subtraction and allocation operation.
l_imatrix_slice(l_imatrix &a, const int &l1, const int &u1, const int &l2, const int &u2) noexcept
Constructor of class l_imatrix_slice.
l_imatrix_slice & operator+=(const l_interval &c) noexcept
Implementation of addition and allocation operation.
The Multiple-Precision Data Type l_imatrix_subv.
l_imatrix_subv & operator/=(const l_interval &c) noexcept
Implementation of division and allocation operation.
l_interval & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector.
friend l_imatrix_subv Row(l_imatrix &m, const int &i) noexcept
Returns one row of the matrix as a vector.
friend int Lb(const l_imatrix_subv &rv) noexcept
Returns the lower bound of the vector.
l_imatrix_subv & operator()() noexcept
Operator for accessing the whole vector.
l_imatrix_subv & operator&=(const l_ivector &rv) noexcept
Allocates the intersection of the arguments to the first argument.
l_imatrix_subv(l_interval *d, const int &l, const int &u, const int &s, const int &st, const int &o) noexcept
Constructor of class l_imatrix_subv.
l_imatrix_subv & operator=(const l_imatrix_subv &rv) noexcept
Implementation of standard assigning operator.
l_imatrix_subv(const l_imatrix_subv &v) noexcept
Constructor of class l_imatrix_subv.
l_imatrix_subv & operator+=(const l_interval &c) noexcept
Implementation of addition and allocation operation.
l_imatrix_subv & operator-=(const l_interval &c) noexcept
Implementation of subtraction and allocation operation.
l_imatrix_subv & operator*=(const l_interval &c) noexcept
Implementation of multiplication and allocation operation.
friend int Ub(const l_imatrix_subv &rv) noexcept
Returns the upper bound of the vector.
friend l_imatrix_subv Col(l_imatrix &m, const int &i) noexcept
Returns one column of the matrix as a vector.
l_imatrix_subv & operator|=(const l_ivector &rv) noexcept
Allocates the convex hull of the arguments to the first argument.
The Multiple-Precision Data Type l_imatrix.
l_imatrix & operator=(const l_interval &r) noexcept
Implementation of standard assigning operator.
l_imatrix_subv operator[](const int &i) const noexcept
Operator for accessing a single row of the matrix.
l_imatrix() noexcept
Constructor of class l_imatrix.
l_imatrix & operator()() noexcept
Operator for accessing the whole matrix.
The Multiple-Precision Data Type l_interval.
The Multiple-Precision Data Type l_ivector_slice.
The Multiple-Precision Data Type l_ivector.
l_ivector() noexcept
Constructor of class l_ivector.
The Multiple-Precision Data Type 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.
The Multiple-Precision Data Type l_rvector.
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.
int ColLen(const cimatrix &)
Returns the column dimension.
real MaxRelDiam(const imatrix_subv &v)
Computes the relative diameter .
civector operator/(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of division operation.
cimatrix transp(const cimatrix &A)
Returns the transposed matrix.
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
int Ub(const cimatrix &rm, const int &i) noexcept
Returns the upper bound index.
cimatrix & SetLb(cimatrix &m, const int &i, const int &j) noexcept
Sets the lower bound index.
int RowLen(const cimatrix &)
Returns the row dimension.
void DoubleSize(cimatrix &A)
Doubles the size of the matrix.
cimatrix Id(const cimatrix &A)
Returns the Identity matrix.
cimatrix _imatrix(const cimatrix &rm) 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.
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 & SetUb(cimatrix &m, const int &i, const int &j) noexcept
Sets the upper bound index.
int Lb(const cimatrix &rm, const int &i) noexcept
Returns the lower bound index.
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.