00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _CXSC_LIMATRIX_INL_INCLUDED
00027 #define _CXSC_LIMATRIX_INL_INCLUDED
00028
00029 namespace cxsc {
00030
00031 INLINE l_imatrix::l_imatrix() throw():dat(NULL),lb1(1),ub1(0),lb2(1),ub2(0),xsize(0),ysize(0)
00032 {
00033 }
00034
00035 INLINE l_imatrix::l_imatrix(const l_interval &r) throw():lb1(1),ub1(1),lb2(1),ub2(1),xsize(1),ysize(1)
00036 {
00037 dat=new l_interval[1];
00038 *dat=r;
00039 }
00040
00041 INLINE l_imatrix::l_imatrix(const real &r) throw():lb1(1),ub1(1),lb2(1),ub2(1),xsize(1),ysize(1)
00042 {
00043 dat=new l_interval[1];
00044 *dat=r;
00045 }
00046
00047 INLINE l_imatrix::l_imatrix(const l_real &r) throw():lb1(1),ub1(1),lb2(1),ub2(1),xsize(1),ysize(1)
00048 {
00049 dat=new l_interval[1];
00050 *dat=r;
00051 }
00052
00053 INLINE l_imatrix::l_imatrix(const interval &r) throw():lb1(1),ub1(1),lb2(1),ub2(1),xsize(1),ysize(1)
00054 {
00055 dat=new l_interval[1];
00056 *dat=r;
00057 }
00058
00059 INLINE l_imatrix::l_imatrix(const rmatrix &rm) throw():lb1(rm.lb1),ub1(rm.ub1),lb2(rm.lb2),ub2(rm.ub2),xsize(rm.xsize),ysize(rm.ysize)
00060 {
00061 dat=new l_interval[xsize*ysize];
00062 for(int i=0;i<xsize*ysize;i++)
00063 dat[i]=rm.dat[i];
00064 }
00065
00066 INLINE l_imatrix::l_imatrix(const l_rmatrix &rm) throw():lb1(rm.lb1),ub1(rm.ub1),lb2(rm.lb2),ub2(rm.ub2),xsize(rm.xsize),ysize(rm.ysize)
00067 {
00068 dat=new l_interval[xsize*ysize];
00069 for(int i=0;i<xsize*ysize;i++)
00070 dat[i]=rm.dat[i];
00071 }
00072
00073 INLINE l_imatrix::l_imatrix(const imatrix &rm) throw():lb1(rm.lb1),ub1(rm.ub1),lb2(rm.lb2),ub2(rm.ub2),xsize(rm.xsize),ysize(rm.ysize)
00074 {
00075 dat=new l_interval[xsize*ysize];
00076 for(int i=0;i<xsize*ysize;i++)
00077 dat[i]=rm.dat[i];
00078 }
00079
00080 INLINE l_imatrix::l_imatrix(const l_imatrix &rm) throw():lb1(rm.lb1),ub1(rm.ub1),lb2(rm.lb2),ub2(rm.ub2),xsize(rm.xsize),ysize(rm.ysize)
00081 {
00082 dat=new l_interval[xsize*ysize];
00083 for(int i=0;i<xsize*ysize;i++)
00084 dat[i]=rm.dat[i];
00085 }
00086
00087 INLINE l_imatrix::l_imatrix(const int &m, const int &n)
00088 #if(CXSC_INDEX_CHECK)
00089 throw(ERROR_LIMATRIX_WRONG_BOUNDARIES):lb1(1),ub1(m),lb2(1),ub2(n),xsize(n),ysize(m)
00090 #else
00091 throw():lb1(1),ub1(m),lb2(1),ub2(n),xsize(n),ysize(m)
00092 #endif
00093 {
00094 #if(CXSC_INDEX_CHECK)
00095 if((n<0)||(m<0)) cxscthrow(ERROR_LIMATRIX_WRONG_BOUNDARIES("l_imatrix::l_imatrix(const int &m, const int &n)"));
00096 #endif
00097 dat=new l_interval[m*n];
00098 }
00099
00100 INLINE l_imatrix::l_imatrix(const int &m1, const int &m2, const int &n1, const int &n2)
00101 #if(CXSC_INDEX_CHECK)
00102 throw(ERROR_LIMATRIX_WRONG_BOUNDARIES):lb1(m1),ub1(m2),lb2(n1),ub2(n2),xsize(n2-n1+1),ysize(m2-m1+1)
00103 #else
00104 throw():lb1(m1),ub1(m2),lb2(n1),ub2(n2),xsize(n2-n1+1),ysize(m2-m1+1)
00105 #endif
00106 {
00107 #if(CXSC_INDEX_CHECK)
00108 if((m2<m1)||(n2<n1)) cxscthrow(ERROR_LIMATRIX_WRONG_BOUNDARIES("l_imatrix::l_imatrix(const int &m1, const int &n1, const int &m2, const int &n2)"));
00109 #endif
00110 dat=new l_interval[xsize*ysize];
00111 }
00112
00113 INLINE l_ivector::l_ivector(const l_imatrix_subv &v) throw():l(v.lb),u(v.ub),size(v.size)
00114 {
00115 dat=new l_interval[size];
00116 for (int i=0, j=v.start;i<v.size;i++,j+=v.offset)
00117 dat[i]=v.dat[j];
00118 }
00119
00120 INLINE l_ivector_slice & l_ivector_slice::operator =(const l_imatrix &m)
00121 #if(CXSC_INDEX_CHECK)
00122 throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>,ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
00123 #else
00124 throw()
00125 #endif
00126 { return _vsvassign(*this,l_ivector(m)); }
00127
00128
00129 INLINE l_imatrix::l_imatrix(const l_ivector &v) throw():lb1(v.l),ub1(v.u),lb2(1),ub2(1),xsize(1),ysize(v.size)
00130 {
00131 dat=new l_interval[v.size];
00132 for(int i=0;i<v.size;i++)
00133 dat[i]=v.dat[i];
00134 }
00135
00136 INLINE l_imatrix::l_imatrix(const rvector &v) throw():lb1(v.l),ub1(v.u),lb2(1),ub2(1),xsize(1),ysize(v.size)
00137 {
00138 dat=new l_interval[v.size];
00139 for(int i=0;i<v.size;i++)
00140 dat[i]=v.dat[i];
00141 }
00142
00143 INLINE l_imatrix::l_imatrix(const l_rvector &v) throw():lb1(v.l),ub1(v.u),lb2(1),ub2(1),xsize(1),ysize(v.size)
00144 {
00145 dat=new l_interval[v.size];
00146 for(int i=0;i<v.size;i++)
00147 dat[i]=v.dat[i];
00148 }
00149
00150 INLINE l_imatrix::l_imatrix(const ivector &v) throw():lb1(v.l),ub1(v.u),lb2(1),ub2(1),xsize(1),ysize(v.size)
00151 {
00152 dat=new l_interval[v.size];
00153 for(int i=0;i<v.size;i++)
00154 dat[i]=v.dat[i];
00155 }
00156
00157 INLINE l_imatrix::l_imatrix(const l_ivector_slice &v) throw():lb1(v.start),ub1(v.end),lb2(1),ub2(1),xsize(1),ysize(v.size)
00158 {
00159 dat=new l_interval[v.size];
00160 for(int i=0,j=v.start-v.l;i<v.size;i++,j++)
00161 dat[i]=v.dat[j];
00162 }
00163
00164 INLINE l_imatrix::l_imatrix(const rvector_slice &v) throw():lb1(v.start),ub1(v.end),lb2(1),ub2(1),xsize(1),ysize(v.size)
00165 {
00166 dat=new l_interval[v.size];
00167 for(int i=0,j=v.start-v.l;i<v.size;i++,j++)
00168 dat[i]=v.dat[j];
00169 }
00170
00171 INLINE l_imatrix::l_imatrix(const ivector_slice &v) throw():lb1(v.start),ub1(v.end),lb2(1),ub2(1),xsize(1),ysize(v.size)
00172 {
00173 dat=new l_interval[v.size];
00174 for(int i=0,j=v.start-v.l;i<v.size;i++,j++)
00175 dat[i]=v.dat[j];
00176 }
00177
00178 INLINE l_imatrix::l_imatrix(const l_rvector_slice &v) throw():lb1(v.start),ub1(v.end),lb2(1),ub2(1),xsize(1),ysize(v.size)
00179 {
00180 dat=new l_interval[v.size];
00181 for(int i=0,j=v.start-v.l;i<v.size;i++,j++)
00182 dat[i]=v.dat[j];
00183 }
00184
00185 INLINE l_interval &l_imatrix_subv::operator [](const int &i) const
00186 #if(CXSC_INDEX_CHECK)
00187 throw(ERROR_LIVECTOR_ELEMENT_NOT_IN_VEC)
00188 #else
00189 throw()
00190 #endif
00191 {
00192 #if(CXSC_INDEX_CHECK)
00193 if((i<lb)||(i>ub)) cxscthrow(ERROR_LIVECTOR_ELEMENT_NOT_IN_VEC("l_interval &l_imatrix_subv::operator [](const int &i)"));
00194 #endif
00195 return dat[start+((i-lb)*offset)];
00196 }
00197
00198 INLINE l_imatrix::l_imatrix(const l_imatrix_slice &sl) throw():lb1(sl.start1),ub1(sl.end1),lb2(sl.start2),ub2(sl.end2),xsize(sl.sxsize),ysize(sl.sysize)
00199 {
00200 int i,j;
00201
00202 dat=new l_interval[xsize*ysize];
00203 for (i=0;i<ysize;i++)
00204 {
00205 for(j=0;j<xsize;j++)
00206 {
00207 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
00208 }
00209 }
00210 }
00211
00212 INLINE l_imatrix::l_imatrix(const rmatrix_slice &sl) throw():lb1(sl.start1),ub1(sl.end1),lb2(sl.start2),ub2(sl.end2),xsize(sl.sxsize),ysize(sl.sysize)
00213 {
00214 int i,j;
00215
00216 dat=new l_interval[xsize*ysize];
00217 for (i=0;i<ysize;i++)
00218 {
00219 for(j=0;j<xsize;j++)
00220 {
00221 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
00222 }
00223 }
00224 }
00225 INLINE l_imatrix::l_imatrix(const l_rmatrix_slice &sl) throw():lb1(sl.start1),ub1(sl.end1),lb2(sl.start2),ub2(sl.end2),xsize(sl.sxsize),ysize(sl.sysize)
00226 {
00227 int i,j;
00228
00229 dat=new l_interval[xsize*ysize];
00230 for (i=0;i<ysize;i++)
00231 {
00232 for(j=0;j<xsize;j++)
00233 {
00234 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
00235 }
00236 }
00237 }
00238 INLINE l_imatrix::l_imatrix(const imatrix_slice &sl) throw():lb1(sl.start1),ub1(sl.end1),lb2(sl.start2),ub2(sl.end2),xsize(sl.sxsize),ysize(sl.sysize)
00239 {
00240 int i,j;
00241
00242 dat=new l_interval[xsize*ysize];
00243 for (i=0;i<ysize;i++)
00244 {
00245 for(j=0;j<xsize;j++)
00246 {
00247 dat[i*xsize+j]=sl.dat[(sl.offset1+i)*sl.mxsize+sl.offset2+j];
00248 }
00249 }
00250 }
00251
00252 INLINE l_imatrix_subv Row(l_imatrix &m,const int &i)
00253 #if(CXSC_INDEX_CHECK)
00254 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00255 #else
00256 throw()
00257 #endif
00258
00259 {
00260 return m[i];
00261 }
00262
00263 INLINE l_imatrix_subv Col(l_imatrix &m,const int &i)
00264 #if(CXSC_INDEX_CHECK)
00265 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00266 #else
00267 throw()
00268 #endif
00269
00270 {
00271 return m[Col(i)];
00272 }
00273
00274 INLINE l_imatrix_subv Row(const l_imatrix &m,const int &i)
00275 #if(CXSC_INDEX_CHECK)
00276 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00277 #else
00278 throw()
00279 #endif
00280
00281 {
00282 return m[i];
00283 }
00284
00285 INLINE l_imatrix_subv Col(const l_imatrix &m,const int &i)
00286 #if(CXSC_INDEX_CHECK)
00287 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00288 #else
00289 throw()
00290 #endif
00291
00292 {
00293 return m[Col(i)];
00294 }
00295
00296 INLINE l_imatrix_subv l_imatrix::operator [](const int &i) const
00297 #if(CXSC_INDEX_CHECK)
00298 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00299 #else
00300 throw()
00301 #endif
00302 {
00303 #if(CXSC_INDEX_CHECK)
00304 if((i<lb1)||(i>ub1)) cxscthrow(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT("l_imatrix_subv l_imatrix::operator [](const int &i)"));
00305 #endif
00306 return l_imatrix_subv(dat, lb2, ub2, xsize, xsize*(i-lb1),1);
00307 }
00308
00309 INLINE l_imatrix_subv l_imatrix::operator [](const cxscmatrix_column &i) const
00310 #if(CXSC_INDEX_CHECK)
00311 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00312 #else
00313 throw()
00314 #endif
00315 {
00316 #if(CXSC_INDEX_CHECK)
00317 if((i.col()<lb2)||(i.col()>ub2)) cxscthrow(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT("l_imatrix_subv l_imatrix::operator [](const cxscmatrix_column &i)"));
00318 #endif
00319 return l_imatrix_subv(dat, lb1, ub1, ysize, i.col()-lb2, xsize);
00320 }
00321
00322 INLINE l_imatrix_slice l_imatrix::operator ()(const int &m, const int &n)
00323 #if(CXSC_INDEX_CHECK)
00324 throw(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG)
00325 #else
00326 throw()
00327 #endif
00328 {
00329 #if(CXSC_INDEX_CHECK)
00330 if((m<1)||(n<1)||(m<lb1)||(n<lb2)||(m>ub1)||(n>ub2)) cxscthrow(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG("l_imatrix_slice l_imatrix::operator ()(const int &m, const int &n)"));
00331 #endif
00332 return l_imatrix_slice(*this,1,m,1,n);
00333 }
00334
00335 INLINE l_imatrix_slice l_imatrix::operator ()(const int &m1, const int &m2, const int &n1, const int &n2)
00336 #if(CXSC_INDEX_CHECK)
00337 throw(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG)
00338 #else
00339 throw()
00340 #endif
00341 {
00342 #if(CXSC_INDEX_CHECK)
00343 if((m1<lb1)||(n1<lb2)||(m2>ub1)||(n2>ub2)) cxscthrow(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG("l_imatrix_slice l_imatrix::operator ()(const int &m1, const int &n1, const int &m2, const int &n2)"));
00344 #endif
00345 return l_imatrix_slice(*this,m1,m2,n1,n2);
00346 }
00347
00348 INLINE l_imatrix_subv l_imatrix_slice::operator [](const int &i)
00349 #if(CXSC_INDEX_CHECK)
00350 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00351 #else
00352 throw()
00353 #endif
00354 {
00355 #if(CXSC_INDEX_CHECK)
00356 if((i<start1)||(i>end1)) cxscthrow(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT("l_imatrix_subv l_imatrix_slice::operator [](const int &i)"));
00357 #endif
00358 return l_imatrix_subv(dat, start2, end2, sxsize, mxsize*(i-start1+offset1)+offset2,1);
00359 }
00360
00361 INLINE l_imatrix_subv l_imatrix_slice::operator [](const cxscmatrix_column &i)
00362 #if(CXSC_INDEX_CHECK)
00363 throw(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT)
00364 #else
00365 throw()
00366 #endif
00367 {
00368 #if(CXSC_INDEX_CHECK)
00369 if((i.col()<start2)||(i.col()>end2)) cxscthrow(ERROR_LIMATRIX_ROW_OR_COL_NOT_IN_MAT("l_imatrix_subv l_imatrix_slice::operator [](const cxscmatrix_column &i)"));
00370 #endif
00371 return l_imatrix_subv(dat, start1, end1, sysize, offset1*mxsize+i.col()-start2+offset2, mxsize);
00372 }
00373
00374 INLINE l_imatrix_slice l_imatrix_slice::operator ()(const int &m, const int &n)
00375 #if(CXSC_INDEX_CHECK)
00376 throw(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG)
00377 #else
00378 throw()
00379 #endif
00380 {
00381 #if(CXSC_INDEX_CHECK)
00382 if((m<1)||(n<1)||(m<start1)||(n<start2)||(m>end1)||(n>end2)) cxscthrow(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG("l_imatrix_slice l_imatrix_slice::operator ()(const int &m, const int &n)"));
00383 #endif
00384 return l_imatrix_slice(*this,1,m,1,n);
00385 }
00386
00387 INLINE l_imatrix_slice l_imatrix_slice::operator ()(const int &m1, const int &m2, const int &n1, const int &n2)
00388 #if(CXSC_INDEX_CHECK)
00389 throw(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG)
00390 #else
00391 throw()
00392 #endif
00393 {
00394 #if(CXSC_INDEX_CHECK)
00395 if((m1<start1)||(n1<start2)||(m2>end1)||(n2>end2)) cxscthrow(ERROR_LIMATRIX_SUB_ARRAY_TOO_BIG("l_imatrix_slice l_imatrix_slice::operator ()(const int &m1, const int &m2, const int &n1, const int &n2)"));
00396 #endif
00397 return l_imatrix_slice(*this,m1,m2,n1,n2);
00398 }
00399
00400 INLINE l_imatrix_subv l_imatrix_subv::operator ()(const int &i)
00401 #if(CXSC_INDEX_CHECK)
00402 throw(ERROR_LIVECTOR_SUB_ARRAY_TOO_BIG)
00403 #else
00404 throw()
00405 #endif
00406 {
00407 #if(CXSC_INDEX_CHECK)
00408 if(1<lb||i>ub) cxscthrow(ERROR_LIVECTOR_SUB_ARRAY_TOO_BIG("l_imatrix_subv l_imatrix_subv::operator ()(const int &i)"));
00409 #endif
00410 return l_imatrix_subv(dat,1,i,i,start+(1-lb)*offset,offset);
00411 }
00412
00413 INLINE l_imatrix_subv l_imatrix_subv::operator ()(const int &i1,const int &i2)
00414 #if(CXSC_INDEX_CHECK)
00415 throw(ERROR_LIVECTOR_SUB_ARRAY_TOO_BIG)
00416 #else
00417 throw()
00418 #endif
00419 {
00420 #if(CXSC_INDEX_CHECK)
00421 if(i1<lb||i2>ub) cxscthrow(ERROR_LIVECTOR_SUB_ARRAY_TOO_BIG("l_imatrix_subv l_imatrix_subv::operator ()(const int &i1,const int &i2)"));
00422 #endif
00423 return l_imatrix_subv(dat,i1,i2,i2-i1+1,start+(i1-lb)*offset,offset);
00424 }
00425
00426
00427
00428 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_imatrix_subv &rv) throw() { return _mvmvassign(*this,rv); }
00429 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_interval &r) throw() { return _mvsassign(*this,r); }
00430 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_ivector &v)
00431 #if(CXSC_INDEX_CHECK)
00432 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00433 #else
00434 throw()
00435 #endif
00436 { return _mvvassign(*this,v); }
00437 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_ivector_slice &v)
00438 #if(CXSC_INDEX_CHECK)
00439 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00440 #else
00441 throw()
00442 #endif
00443 { return _mvvassign(*this,l_ivector(v)); }
00444
00445 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const rmatrix_subv &rv) throw() { return _mvvassign(*this,rvector(rv)); }
00446 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const real &r) throw() { return _mvsassign(*this,r); }
00447 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const rvector &v)
00448 #if(CXSC_INDEX_CHECK)
00449 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00450 #else
00451 throw()
00452 #endif
00453 { return _mvvassign(*this,v); }
00454 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const rvector_slice &v)
00455 #if(CXSC_INDEX_CHECK)
00456 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00457 #else
00458 throw()
00459 #endif
00460 { return _mvvassign(*this,l_ivector(v)); }
00461
00462 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_rmatrix_subv &rv) throw() { return _mvvassign(*this,l_rvector(rv)); }
00463 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_real &r) throw() { return _mvsassign(*this,r); }
00464 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_rvector &v)
00465 #if(CXSC_INDEX_CHECK)
00466 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00467 #else
00468 throw()
00469 #endif
00470 { return _mvvassign(*this,v); }
00471 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_rvector_slice &v)
00472 #if(CXSC_INDEX_CHECK)
00473 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00474 #else
00475 throw()
00476 #endif
00477 { return _mvvassign(*this,l_ivector(v)); }
00478
00479 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const imatrix_subv &rv) throw() { return _mvvassign(*this,ivector(rv)); }
00480 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const interval &r) throw() { return _mvsassign(*this,r); }
00481 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const ivector &v)
00482 #if(CXSC_INDEX_CHECK)
00483 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00484 #else
00485 throw()
00486 #endif
00487 { return _mvvassign(*this,v); }
00488 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const ivector_slice &v)
00489 #if(CXSC_INDEX_CHECK)
00490 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00491 #else
00492 throw()
00493 #endif
00494 { return _mvvassign(*this,l_ivector(v)); }
00495
00496 INLINE l_imatrix &l_imatrix::operator =(const l_interval &r) throw() { return _msassign(*this,r); }
00497 INLINE l_imatrix &l_imatrix::operator =(const l_imatrix &m) throw() { return _mmassign<l_imatrix,l_imatrix,l_interval>(*this,m, l_interval()); }
00498 INLINE l_imatrix &l_imatrix::operator =(const l_imatrix_slice &ms) throw() { return _mmsassign<l_imatrix,l_imatrix_slice,l_interval>(*this,ms); }
00499 INLINE l_imatrix &l_imatrix::operator =(const l_ivector &v) throw() { return _mvassign<l_imatrix,l_ivector,l_interval>(*this,v); }
00500 INLINE l_imatrix &l_imatrix::operator =(const l_ivector_slice &v) throw() { return _mvassign<l_imatrix,l_ivector,l_interval>(*this,l_ivector(v)); }
00501
00502 INLINE l_imatrix &l_imatrix::operator =(const real &r) throw() { return _msassign(*this,l_interval(r)); }
00503 INLINE l_imatrix &l_imatrix::operator =(const rmatrix &m) throw() { return _mmassign<l_imatrix,rmatrix,l_interval>(*this,m, l_interval()); }
00504 INLINE l_imatrix &l_imatrix::operator =(const rmatrix_slice &ms) throw() { return _mmsassign<l_imatrix,rmatrix_slice,l_interval>(*this,ms); }
00505 INLINE l_imatrix &l_imatrix::operator =(const rvector &v) throw() { return _mvassign<l_imatrix,rvector,l_interval>(*this,v); }
00506 INLINE l_imatrix &l_imatrix::operator =(const rvector_slice &v) throw() { return _mvassign<l_imatrix,rvector,l_interval>(*this,rvector(v)); }
00507
00508 INLINE l_imatrix &l_imatrix::operator =(const l_real &r) throw() { return _msassign(*this,l_interval(r)); }
00509 INLINE l_imatrix &l_imatrix::operator =(const l_rmatrix &m) throw() { return _mmassign<l_imatrix,l_rmatrix,l_interval>(*this,m, l_interval()); }
00510 INLINE l_imatrix &l_imatrix::operator =(const l_rmatrix_slice &ms) throw() { return _mmsassign<l_imatrix,l_rmatrix_slice,l_interval>(*this,ms); }
00511 INLINE l_imatrix &l_imatrix::operator =(const l_rvector &v) throw() { return _mvassign<l_imatrix,l_rvector,l_interval>(*this,v); }
00512 INLINE l_imatrix &l_imatrix::operator =(const l_rvector_slice &v) throw() { return _mvassign<l_imatrix,l_rvector,l_interval>(*this,l_rvector(v)); }
00513
00514 INLINE l_imatrix &l_imatrix::operator =(const interval &r) throw() { return _msassign(*this,l_interval(r)); }
00515 INLINE l_imatrix &l_imatrix::operator =(const imatrix &m) throw() { return _mmassign<l_imatrix,imatrix,l_interval>(*this,m, l_interval()); }
00516 INLINE l_imatrix &l_imatrix::operator =(const imatrix_slice &ms) throw() { return _mmsassign<l_imatrix,imatrix_slice,l_interval>(*this,ms); }
00517 INLINE l_imatrix &l_imatrix::operator =(const ivector &v) throw() { return _mvassign<l_imatrix,ivector,l_interval>(*this,v); }
00518 INLINE l_imatrix &l_imatrix::operator =(const ivector_slice &v) throw() { return _mvassign<l_imatrix,ivector,l_interval>(*this,ivector(v)); }
00519
00520 INLINE l_imatrix::operator void*() throw() { return _mvoid(*this); }
00521
00522 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_imatrix &m)
00523 #if(CXSC_INDEX_CHECK)
00524 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00525 #else
00526 throw()
00527 #endif
00528 { return _msmassign(*this,m); }
00529 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_imatrix_slice &ms)
00530 #if(CXSC_INDEX_CHECK)
00531 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00532 #else
00533 throw()
00534 #endif
00535 { return _msmsassign(*this,ms); }
00536 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_interval &r) throw() { return _mssassign(*this,r); }
00537 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_ivector &v)
00538 #if(CXSC_INDEX_CHECK)
00539 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00540 #else
00541 throw()
00542 #endif
00543 { return _msmassign(*this,l_imatrix(v)); }
00544 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_ivector_slice &v)
00545 #if(CXSC_INDEX_CHECK)
00546 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00547 #else
00548 throw()
00549 #endif
00550 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00551 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_imatrix_subv &v)
00552 #if(CXSC_INDEX_CHECK)
00553 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00554 #else
00555 throw()
00556 #endif
00557 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00558
00559 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const rmatrix &m)
00560 #if(CXSC_INDEX_CHECK)
00561 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00562 #else
00563 throw()
00564 #endif
00565 { return _msmassign(*this,m); }
00566 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const rmatrix_slice &ms)
00567 #if(CXSC_INDEX_CHECK)
00568 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00569 #else
00570 throw()
00571 #endif
00572 { return _msmsassign(*this,ms); }
00573 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const real &r) throw() { return _mssassign(*this,r); }
00574 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const rvector &v)
00575 #if(CXSC_INDEX_CHECK)
00576 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00577 #else
00578 throw()
00579 #endif
00580 { return _msmassign(*this,l_imatrix(v)); }
00581 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const rvector_slice &v)
00582 #if(CXSC_INDEX_CHECK)
00583 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00584 #else
00585 throw()
00586 #endif
00587 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00588 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const rmatrix_subv &v)
00589 #if(CXSC_INDEX_CHECK)
00590 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00591 #else
00592 throw()
00593 #endif
00594 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00595
00596 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_rmatrix &m)
00597 #if(CXSC_INDEX_CHECK)
00598 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00599 #else
00600 throw()
00601 #endif
00602 { return _msmassign(*this,m); }
00603 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_rmatrix_slice &ms)
00604 #if(CXSC_INDEX_CHECK)
00605 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00606 #else
00607 throw()
00608 #endif
00609 { return _msmsassign(*this,ms); }
00610 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_real &r) throw() { return _mssassign(*this,r); }
00611 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_rvector &v)
00612 #if(CXSC_INDEX_CHECK)
00613 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00614 #else
00615 throw()
00616 #endif
00617 { return _msmassign(*this,l_imatrix(v)); }
00618 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_rvector_slice &v)
00619 #if(CXSC_INDEX_CHECK)
00620 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00621 #else
00622 throw()
00623 #endif
00624 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00625 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const l_rmatrix_subv &v)
00626 #if(CXSC_INDEX_CHECK)
00627 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00628 #else
00629 throw()
00630 #endif
00631 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00632
00633 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const imatrix &m)
00634 #if(CXSC_INDEX_CHECK)
00635 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00636 #else
00637 throw()
00638 #endif
00639 { return _msmassign(*this,m); }
00640 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const imatrix_slice &ms)
00641 #if(CXSC_INDEX_CHECK)
00642 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00643 #else
00644 throw()
00645 #endif
00646 { return _msmsassign(*this,ms); }
00647 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const interval &r) throw() { return _mssassign(*this,r); }
00648 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const ivector &v)
00649 #if(CXSC_INDEX_CHECK)
00650 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00651 #else
00652 throw()
00653 #endif
00654 { return _msmassign(*this,l_imatrix(v)); }
00655 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const ivector_slice &v)
00656 #if(CXSC_INDEX_CHECK)
00657 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00658 #else
00659 throw()
00660 #endif
00661 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00662 INLINE l_imatrix_slice &l_imatrix_slice::operator =(const imatrix_subv &v)
00663 #if(CXSC_INDEX_CHECK)
00664 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00665 #else
00666 throw()
00667 #endif
00668 { return _msmassign(*this,l_imatrix(l_ivector(v))); }
00669
00670 INLINE l_imatrix_slice::operator void*() throw() { return _msvoid(*this); }
00671 INLINE l_ivector operator /(const l_imatrix_subv &rv, const l_interval &s) throw() { return _mvsdiv<l_imatrix_subv,l_interval,l_ivector>(rv,s); }
00672 INLINE l_ivector operator *(const l_imatrix_subv &rv, const l_interval &s) throw() { return _mvsmult<l_imatrix_subv,l_interval,l_ivector>(rv,s); }
00673 INLINE l_ivector operator *(const l_interval &s, const l_imatrix_subv &rv) throw() { return _mvsmult<l_imatrix_subv,l_interval,l_ivector>(rv,s); }
00674 INLINE l_imatrix_subv &l_imatrix_subv::operator *=(const l_interval &c) throw() { return _mvsmultassign(*this,c); }
00675 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_interval &c) throw() { return _mvsplusassign(*this,c); }
00676 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_interval &c) throw() { return _mvsminusassign(*this,c); }
00677 INLINE l_imatrix_subv &l_imatrix_subv::operator /=(const l_interval &c) throw() { return _mvsdivassign(*this,c); }
00678 INLINE l_ivector abs(const l_imatrix_subv &mv) throw() { return _mvabs<l_imatrix_subv,l_ivector>(mv); }
00679 INLINE l_rvector diam(const l_imatrix_subv &mv) throw() { return _mvdiam<l_imatrix_subv,l_rvector>(mv); }
00680 INLINE l_rvector mid(const l_imatrix_subv &mv) throw() { return _mvmid<l_imatrix_subv,l_rvector>(mv); }
00681 INLINE l_rvector Inf(const l_imatrix_subv &mv) throw() { return _mvinf<l_imatrix_subv,l_rvector>(mv); }
00682 INLINE l_rvector Sup(const l_imatrix_subv &mv) throw() { return _mvsup<l_imatrix_subv,l_rvector>(mv); }
00683
00684 INLINE l_imatrix_subv &SetInf(l_imatrix_subv &iv,const l_rvector &rv)
00685 #if(CXSC_INDEX_CHECK)
00686 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00687 #else
00688 throw()
00689 #endif
00690 { return _mvvsetinf(iv,rv); }
00691 INLINE l_imatrix_subv &SetSup(l_imatrix_subv &iv,const l_rvector &rv)
00692 #if(CXSC_INDEX_CHECK)
00693 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00694 #else
00695 throw()
00696 #endif
00697 { return _mvvsetsup(iv,rv); }
00698 INLINE l_imatrix_subv &UncheckedSetInf(l_imatrix_subv &iv,const l_rvector &rv)
00699 #if(CXSC_INDEX_CHECK)
00700 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00701 #else
00702 throw()
00703 #endif
00704 { return _mvvusetinf(iv,rv); }
00705 INLINE l_imatrix_subv &UncheckedSetSup(l_imatrix_subv &iv,const l_rvector &rv)
00706 #if(CXSC_INDEX_CHECK)
00707 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
00708 #else
00709 throw()
00710 #endif
00711 { return _mvvusetsup(iv,rv); }
00712 INLINE l_imatrix_subv &SetSup(l_imatrix_subv &iv,const l_real &r) throw() { return _mvssetsup(iv,r); }
00713 INLINE l_imatrix_subv &SetInf(l_imatrix_subv &iv,const l_real &r) throw() { return _mvssetinf(iv,r); }
00714 INLINE l_imatrix_subv &UncheckedSetSup(l_imatrix_subv &iv,const l_real &r) throw() { return _mvsusetsup(iv,r); }
00715 INLINE l_imatrix_subv &SetUncheckedInf(l_imatrix_subv &iv,const l_real &r) throw() { return _mvsusetinf(iv,r); }
00716 INLINE l_ivector &l_ivector::operator =(const l_imatrix_subv &mv) throw() { return _vmvassign<l_ivector,l_imatrix_subv,l_interval>(*this,mv); }
00717 INLINE l_ivector_slice &l_ivector_slice::operator =(const l_imatrix_subv &mv) throw() { return _vsvassign(*this,l_ivector(mv)); }
00718
00719 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00720 #if(CXSC_INDEX_CHECK)
00721 throw(OP_WITH_WRONG_DIM)
00722 #else
00723 throw()
00724 #endif
00725 { _mvmvaccu(dp,rv1,rv2); }
00726 INLINE void accumulate(idotprecision &dp, const l_ivector & rv1, const l_imatrix_subv &rv2)
00727 #if(CXSC_INDEX_CHECK)
00728 throw(OP_WITH_WRONG_DIM)
00729 #else
00730 throw()
00731 #endif
00732 { _vmvaccu(dp,rv1,rv2); }
00733 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_ivector &rv2)
00734 #if(CXSC_INDEX_CHECK)
00735 throw(OP_WITH_WRONG_DIM)
00736 #else
00737 throw()
00738 #endif
00739 { _vmvaccu(dp,rv2,rv1); }
00740 INLINE void accumulate(idotprecision &dp, const l_ivector_slice & sl1, const l_imatrix_subv &rv2)
00741 #if(CXSC_INDEX_CHECK)
00742 throw(OP_WITH_WRONG_DIM)
00743 #else
00744 throw()
00745 #endif
00746 { _vmvaccu(dp,l_ivector(sl1),rv2); }
00747 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_ivector_slice &sl2)
00748 #if(CXSC_INDEX_CHECK)
00749 throw(OP_WITH_WRONG_DIM)
00750 #else
00751 throw()
00752 #endif
00753 { _vmvaccu(dp,l_ivector(sl2),rv1); }
00754
00755 INLINE l_interval operator *(const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00756 #if(CXSC_INDEX_CHECK)
00757 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00758 #else
00759 throw()
00760 #endif
00761 { return _mvmvlimult<l_imatrix_subv,l_imatrix_subv,l_interval>(rv1,rv2); }
00762 INLINE l_interval operator *(const l_ivector & rv1, const l_imatrix_subv &rv2)
00763 #if(CXSC_INDEX_CHECK)
00764 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00765 #else
00766 throw()
00767 #endif
00768 { return _vmvlimult<l_ivector,l_imatrix_subv,l_interval>(rv1,rv2); }
00769 INLINE l_interval operator *(const l_imatrix_subv &rv1,const l_ivector &rv2)
00770 #if(CXSC_INDEX_CHECK)
00771 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00772 #else
00773 throw()
00774 #endif
00775 { return _vmvlimult<l_ivector,l_imatrix_subv,l_interval>(rv2,rv1); }
00776 INLINE l_interval operator *(const l_ivector_slice &sl,const l_imatrix_subv &sv)
00777 #if(CXSC_INDEX_CHECK)
00778 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00779 #else
00780 throw()
00781 #endif
00782 { return _vmvlimult<l_ivector,l_imatrix_subv,l_interval>(l_ivector(sl),sv); }
00783 INLINE l_interval operator *(const l_imatrix_subv &mv,const l_ivector_slice &vs)
00784 #if(CXSC_INDEX_CHECK)
00785 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00786 #else
00787 throw()
00788 #endif
00789 { return _vmvlimult<l_ivector,l_imatrix_subv,l_interval>(l_ivector(vs),mv); }
00790 INLINE l_ivector operator +(const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00791 #if(CXSC_INDEX_CHECK)
00792 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00793 #else
00794 throw()
00795 #endif
00796 { return _mvmvplus<l_imatrix_subv,l_imatrix_subv,l_ivector>(rv1,rv2); }
00797 INLINE l_ivector operator +(const l_imatrix_subv &rv1,const l_ivector &rv2)
00798 #if(CXSC_INDEX_CHECK)
00799 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00800 #else
00801 throw()
00802 #endif
00803 { return _mvvplus<l_imatrix_subv,l_ivector,l_ivector>(rv1,rv2); }
00804 INLINE l_ivector operator +(const l_ivector & rv1, const l_imatrix_subv &rv2)
00805 #if(CXSC_INDEX_CHECK)
00806 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00807 #else
00808 throw()
00809 #endif
00810 { return _mvvplus<l_imatrix_subv,l_ivector,l_ivector>(rv2,rv1); }
00811 INLINE l_ivector operator +(const l_ivector_slice &sl,const l_imatrix_subv &mv)
00812 #if(CXSC_INDEX_CHECK)
00813 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00814 #else
00815 throw()
00816 #endif
00817 { return _mvvplus<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00818 INLINE l_ivector operator +(const l_imatrix_subv &mv,const l_ivector_slice &sl)
00819 #if(CXSC_INDEX_CHECK)
00820 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00821 #else
00822 throw()
00823 #endif
00824 { return _mvvplus<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00825 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_ivector &rv)
00826 #if(CXSC_INDEX_CHECK)
00827 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00828 #else
00829 throw()
00830 #endif
00831 { return _mvvplusassign(*this,rv); }
00832 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_ivector_slice &rv)
00833 #if(CXSC_INDEX_CHECK)
00834 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00835 #else
00836 throw()
00837 #endif
00838 { return _mvvplusassign(*this,l_ivector(rv)); }
00839 INLINE l_ivector operator -(const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00840 #if(CXSC_INDEX_CHECK)
00841 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00842 #else
00843 throw()
00844 #endif
00845 { return _mvmvminus<l_imatrix_subv,l_imatrix_subv,l_ivector>(rv1,rv2); }
00846 INLINE l_ivector operator -(const l_ivector & rv1, const l_imatrix_subv &rv2)
00847 #if(CXSC_INDEX_CHECK)
00848 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00849 #else
00850 throw()
00851 #endif
00852 { return _vmvminus<l_ivector,l_imatrix_subv,l_ivector>(rv1,rv2); }
00853 INLINE l_ivector operator -(const l_imatrix_subv &rv1,const l_ivector &rv2)
00854 #if(CXSC_INDEX_CHECK)
00855 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00856 #else
00857 throw()
00858 #endif
00859 { return _mvvminus<l_imatrix_subv,l_ivector,l_ivector>(rv1,rv2); }
00860 INLINE l_ivector operator -(const l_ivector_slice &sl,const l_imatrix_subv &mv)
00861 #if(CXSC_INDEX_CHECK)
00862 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00863 #else
00864 throw()
00865 #endif
00866 { return _vmvminus<l_ivector,l_imatrix_subv,l_ivector>(l_ivector(sl),mv); }
00867 INLINE l_ivector operator -(const l_imatrix_subv &mv,const l_ivector_slice &sl)
00868 #if(CXSC_INDEX_CHECK)
00869 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00870 #else
00871 throw()
00872 #endif
00873 { return _mvvminus<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00874 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_ivector &rv)
00875 #if(CXSC_INDEX_CHECK)
00876 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00877 #else
00878 throw()
00879 #endif
00880 { return _mvvminusassign(*this,rv); }
00881 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_ivector_slice &rv)
00882 #if(CXSC_INDEX_CHECK)
00883 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00884 #else
00885 throw()
00886 #endif
00887 { return _mvvminusassign(*this,l_ivector(rv)); }
00888 INLINE l_ivector operator |(const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00889 #if(CXSC_INDEX_CHECK)
00890 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00891 #else
00892 throw()
00893 #endif
00894 { return _mvmvconv<l_imatrix_subv,l_imatrix_subv,l_ivector>(rv1,rv2); }
00895 INLINE l_ivector operator |(const l_imatrix_subv &rv1,const l_ivector &rv2)
00896 #if(CXSC_INDEX_CHECK)
00897 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00898 #else
00899 throw()
00900 #endif
00901 { return _mvvconv<l_imatrix_subv,l_ivector,l_ivector>(rv1,rv2); }
00902 INLINE l_ivector operator |(const l_ivector & rv1, const l_imatrix_subv &rv2)
00903 #if(CXSC_INDEX_CHECK)
00904 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00905 #else
00906 throw()
00907 #endif
00908 { return _mvvconv<l_imatrix_subv,l_ivector,l_ivector>(rv2,rv1); }
00909 INLINE l_ivector operator |(const l_ivector_slice &sl,const l_imatrix_subv &mv)
00910 #if(CXSC_INDEX_CHECK)
00911 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00912 #else
00913 throw()
00914 #endif
00915 { return _mvvconv<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00916 INLINE l_ivector operator |(const l_imatrix_subv &mv,const l_ivector_slice &sl)
00917 #if(CXSC_INDEX_CHECK)
00918 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00919 #else
00920 throw()
00921 #endif
00922 { return _mvvconv<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00923 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const l_ivector &rv)
00924 #if(CXSC_INDEX_CHECK)
00925 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00926 #else
00927 throw()
00928 #endif
00929 { return _mvvconvassign(*this,rv); }
00930 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const l_ivector_slice &rv)
00931 #if(CXSC_INDEX_CHECK)
00932 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00933 #else
00934 throw()
00935 #endif
00936 { return _mvvconvassign(*this,l_ivector(rv)); }
00937 INLINE l_ivector operator &(const l_imatrix_subv & rv1, const l_imatrix_subv &rv2)
00938 #if(CXSC_INDEX_CHECK)
00939 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00940 #else
00941 throw()
00942 #endif
00943 { return _mvmvsect<l_imatrix_subv,l_imatrix_subv,l_ivector>(rv1,rv2); }
00944 INLINE l_ivector operator &(const l_imatrix_subv &rv1,const l_ivector &rv2)
00945 #if(CXSC_INDEX_CHECK)
00946 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00947 #else
00948 throw()
00949 #endif
00950 { return _mvvsect<l_imatrix_subv,l_ivector,l_ivector>(rv1,rv2); }
00951 INLINE l_ivector operator &(const l_ivector & rv1, const l_imatrix_subv &rv2)
00952 #if(CXSC_INDEX_CHECK)
00953 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00954 #else
00955 throw()
00956 #endif
00957 { return _mvvsect<l_imatrix_subv,l_ivector,l_ivector>(rv2,rv1); }
00958 INLINE l_ivector operator &(const l_ivector_slice &sl,const l_imatrix_subv &mv)
00959 #if(CXSC_INDEX_CHECK)
00960 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00961 #else
00962 throw()
00963 #endif
00964 { return _mvvsect<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00965 INLINE l_ivector operator &(const l_imatrix_subv &mv,const l_ivector_slice &sl)
00966 #if(CXSC_INDEX_CHECK)
00967 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00968 #else
00969 throw()
00970 #endif
00971 { return _mvvsect<l_imatrix_subv,l_ivector,l_ivector>(mv,l_ivector(sl)); }
00972 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const l_ivector &rv)
00973 #if(CXSC_INDEX_CHECK)
00974 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00975 #else
00976 throw()
00977 #endif
00978 { return _mvvsectassign(*this,rv); }
00979 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const l_ivector_slice &rv)
00980 #if(CXSC_INDEX_CHECK)
00981 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
00982 #else
00983 throw()
00984 #endif
00985 { return _mvvsectassign(*this,l_ivector(rv)); }
00986
00987
00988 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const rmatrix_subv &rv2)
00989 #if(CXSC_INDEX_CHECK)
00990 throw(OP_WITH_WRONG_DIM)
00991 #else
00992 throw()
00993 #endif
00994 { _mvmvaccu(dp,rv2,rv1); }
00995 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const rvector_slice &sl2)
00996 #if(CXSC_INDEX_CHECK)
00997 throw(OP_WITH_WRONG_DIM)
00998 #else
00999 throw()
01000 #endif
01001 { _vmvaccu(dp,rvector(sl2),rv1); }
01002 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const rvector &rv2)
01003 #if(CXSC_INDEX_CHECK)
01004 throw(OP_WITH_WRONG_DIM)
01005 #else
01006 throw()
01007 #endif
01008 { _vmvaccu(dp,rv2,rv1); }
01009 INLINE void accumulate(idotprecision &dp, const rmatrix_subv & rv1, const l_imatrix_subv &rv2)
01010 #if(CXSC_INDEX_CHECK)
01011 throw(OP_WITH_WRONG_DIM)
01012 #else
01013 throw()
01014 #endif
01015 { _mvmvaccu(dp,rv1,rv2); }
01016 INLINE void accumulate(idotprecision &dp, const rvector_slice & sl1, const l_imatrix_subv &rv2)
01017 #if(CXSC_INDEX_CHECK)
01018 throw(OP_WITH_WRONG_DIM)
01019 #else
01020 throw()
01021 #endif
01022 { _vmvaccu(dp,rvector(sl1),rv2); }
01023 INLINE void accumulate(idotprecision &dp, const rvector & rv1, const l_imatrix_subv &rv2)
01024 #if(CXSC_INDEX_CHECK)
01025 throw(OP_WITH_WRONG_DIM)
01026 #else
01027 throw()
01028 #endif
01029 { _vmvaccu(dp,rv1,rv2); }
01030
01031 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_rmatrix_subv &rv2)
01032 #if(CXSC_INDEX_CHECK)
01033 throw(OP_WITH_WRONG_DIM)
01034 #else
01035 throw()
01036 #endif
01037 { _mvmvaccu(dp,rv2,rv1); }
01038 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_rvector_slice &sl2)
01039 #if(CXSC_INDEX_CHECK)
01040 throw(OP_WITH_WRONG_DIM)
01041 #else
01042 throw()
01043 #endif
01044 { _vmvaccu(dp,l_rvector(sl2),rv1); }
01045 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const l_rvector &rv2)
01046 #if(CXSC_INDEX_CHECK)
01047 throw(OP_WITH_WRONG_DIM)
01048 #else
01049 throw()
01050 #endif
01051 { _vmvaccu(dp,rv2,rv1); }
01052 INLINE void accumulate(idotprecision &dp, const l_rmatrix_subv & rv1, const l_imatrix_subv &rv2)
01053 #if(CXSC_INDEX_CHECK)
01054 throw(OP_WITH_WRONG_DIM)
01055 #else
01056 throw()
01057 #endif
01058 { _mvmvaccu(dp,rv1,rv2); }
01059 INLINE void accumulate(idotprecision &dp, const l_rvector_slice & sl1, const l_imatrix_subv &rv2)
01060 #if(CXSC_INDEX_CHECK)
01061 throw(OP_WITH_WRONG_DIM)
01062 #else
01063 throw()
01064 #endif
01065 { _vmvaccu(dp,l_rvector(sl1),rv2); }
01066 INLINE void accumulate(idotprecision &dp, const l_rvector & rv1, const l_imatrix_subv &rv2)
01067 #if(CXSC_INDEX_CHECK)
01068 throw(OP_WITH_WRONG_DIM)
01069 #else
01070 throw()
01071 #endif
01072 { _vmvaccu(dp,rv1,rv2); }
01073
01074 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const imatrix_subv &rv2)
01075 #if(CXSC_INDEX_CHECK)
01076 throw(OP_WITH_WRONG_DIM)
01077 #else
01078 throw()
01079 #endif
01080 { _mvmvaccu(dp,rv2,rv1); }
01081 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const ivector_slice &sl2)
01082 #if(CXSC_INDEX_CHECK)
01083 throw(OP_WITH_WRONG_DIM)
01084 #else
01085 throw()
01086 #endif
01087 { _vmvaccu(dp,ivector(sl2),rv1); }
01088 INLINE void accumulate(idotprecision &dp, const l_imatrix_subv & rv1, const ivector &rv2)
01089 #if(CXSC_INDEX_CHECK)
01090 throw(OP_WITH_WRONG_DIM)
01091 #else
01092 throw()
01093 #endif
01094 { _vmvaccu(dp,rv2,rv1); }
01095 INLINE void accumulate(idotprecision &dp, const imatrix_subv & rv1, const l_imatrix_subv &rv2)
01096 #if(CXSC_INDEX_CHECK)
01097 throw(OP_WITH_WRONG_DIM)
01098 #else
01099 throw()
01100 #endif
01101 { _mvmvaccu(dp,rv1,rv2); }
01102 INLINE void accumulate(idotprecision &dp, const ivector_slice & sl1, const l_imatrix_subv &rv2)
01103 #if(CXSC_INDEX_CHECK)
01104 throw(OP_WITH_WRONG_DIM)
01105 #else
01106 throw()
01107 #endif
01108 { _vmvaccu(dp,ivector(sl1),rv2); }
01109 INLINE void accumulate(idotprecision &dp, const ivector & rv1, const l_imatrix_subv &rv2)
01110 #if(CXSC_INDEX_CHECK)
01111 throw(OP_WITH_WRONG_DIM)
01112 #else
01113 throw()
01114 #endif
01115 { _vmvaccu(dp,rv1,rv2); }
01116
01117
01118
01119
01125 INLINE l_imatrix _imatrix(const l_imatrix &rm) throw() { return rm; }
01131 INLINE l_imatrix _imatrix(const l_ivector &v) throw() { return l_imatrix(v); }
01137 INLINE l_imatrix _imatrix(const l_ivector_slice &v) throw() { return l_imatrix(v); }
01143 INLINE l_imatrix _imatrix(const l_interval &r) throw() { return l_imatrix(r); }
01144 INLINE int Lb(const l_imatrix &rm, const int &i)
01145 #if(CXSC_INDEX_CHECK)
01146 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01147 #else
01148 throw()
01149 #endif
01150 { return _mlb(rm,i); }
01151 INLINE int Ub(const l_imatrix &rm, const int &i)
01152 #if(CXSC_INDEX_CHECK)
01153 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01154 #else
01155 throw()
01156 #endif
01157 { return _mub(rm,i); }
01158 INLINE int Lb(const l_imatrix_slice &rm, const int &i)
01159 #if(CXSC_INDEX_CHECK)
01160 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01161 #else
01162 throw()
01163 #endif
01164 { return _mslb(rm,i); }
01165 INLINE int Ub(const l_imatrix_slice &rm, const int &i)
01166 #if(CXSC_INDEX_CHECK)
01167 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01168 #else
01169 throw()
01170 #endif
01171 { return _msub(rm,i); }
01172 INLINE l_imatrix &SetLb(l_imatrix &m, const int &i,const int &j)
01173 #if(CXSC_INDEX_CHECK)
01174 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01175 #else
01176 throw()
01177 #endif
01178 { return _msetlb(m,i,j); }
01179 INLINE l_imatrix &SetUb(l_imatrix &m, const int &i,const int &j)
01180 #if(CXSC_INDEX_CHECK)
01181 throw(ERROR_LIMATRIX_WRONG_ROW_OR_COL)
01182 #else
01183 throw()
01184 #endif
01185 { return _msetub(m,i,j); }
01186
01187
01188 INLINE int RowLen ( const l_imatrix& A )
01189 { return Ub(A,2)-Lb(A,2)+1; }
01190
01191 INLINE int ColLen ( const l_imatrix& A )
01192 { return Ub(A,1)-Lb(A,1)+1; }
01193
01194 INLINE int RowLen ( const l_imatrix_slice& A )
01195 { return Ub(A,2)-Lb(A,2)+1; }
01196
01197 INLINE int ColLen ( const l_imatrix_slice& A )
01198 { return Ub(A,1)-Lb(A,1)+1; }
01199
01200 INLINE void Resize(l_imatrix &A) throw() { _mresize(A);}
01201 INLINE void Resize(l_imatrix &A,const int &m, const int &n)
01202 #if(CXSC_INDEX_CHECK)
01203 throw(ERROR_LIMATRIX_WRONG_BOUNDARIES)
01204 #else
01205 throw()
01206 #endif
01207 { _mresize<l_imatrix,l_interval>(A,m,n); }
01208 INLINE void Resize(l_imatrix &A,const int &m1, const int &m2,const int &n1,const int &n2)
01209 #if(CXSC_INDEX_CHECK)
01210 throw(ERROR_LIMATRIX_WRONG_BOUNDARIES)
01211 #else
01212 throw()
01213 #endif
01214 { _mresize<l_imatrix,l_interval>(A,m1,m2,n1,n2); }
01215 INLINE l_imatrix abs(const l_imatrix &m) throw() { return _mabs<l_imatrix,l_imatrix>(m); }
01216 INLINE l_imatrix abs(const l_imatrix_slice &ms) throw() { return _msabs<l_imatrix_slice,l_imatrix>(ms); }
01217 INLINE l_rmatrix diam(const l_imatrix &m) throw() { return _mdiam<l_imatrix,l_rmatrix>(m); }
01218 INLINE l_rmatrix diam(const l_imatrix_slice &m) throw() { return _msdiam<l_imatrix_slice,l_rmatrix>(m); }
01219 INLINE l_rmatrix mid(const l_imatrix &m) throw() { return _mmid<l_imatrix,l_rmatrix>(m); }
01220 INLINE l_rmatrix mid(const l_imatrix_slice &m) throw() { return _msmid<l_imatrix_slice,l_rmatrix>(m); }
01221 INLINE l_rmatrix Inf(const l_imatrix &m) throw() { return _minf<l_imatrix,l_rmatrix>(m); }
01222 INLINE l_rmatrix Sup(const l_imatrix &m) throw() { return _msup<l_imatrix,l_rmatrix>(m); }
01223 INLINE l_rmatrix Inf(const l_imatrix_slice &m) throw() { return _msinf<l_imatrix_slice,l_rmatrix>(m); }
01224 INLINE l_rmatrix Sup(const l_imatrix_slice &m) throw() { return _mssup<l_imatrix_slice,l_rmatrix>(m); }
01225 INLINE l_imatrix &SetInf(l_imatrix &cm,const l_rmatrix &rm)
01226 #if(CXSC_INDEX_CHECK)
01227 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01228 #else
01229 throw()
01230 #endif
01231 { return _mmsetinf<l_imatrix,l_rmatrix>(cm,rm); }
01232 INLINE l_imatrix_slice &SetInf(l_imatrix_slice &cm,const l_rmatrix &rm)
01233 #if(CXSC_INDEX_CHECK)
01234 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01235 #else
01236 throw()
01237 #endif
01238 { return _msmsetinf<l_imatrix_slice,l_rmatrix>(cm,rm); }
01239 INLINE l_imatrix &SetInf(l_imatrix &cm,const l_rmatrix_slice &rm)
01240 #if(CXSC_INDEX_CHECK)
01241 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01242 #else
01243 throw()
01244 #endif
01245 { return _mmssetinf<l_imatrix,l_rmatrix_slice>(cm,rm); }
01246 INLINE l_imatrix_slice &SetInf(l_imatrix_slice &cm,const l_rmatrix_slice &rm)
01247 #if(CXSC_INDEX_CHECK)
01248 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01249 #else
01250 throw()
01251 #endif
01252 { return _msmssetinf<l_imatrix_slice,l_rmatrix_slice>(cm,rm); }
01253 INLINE l_imatrix &SetSup(l_imatrix &cm,const l_rmatrix &rm)
01254 #if(CXSC_INDEX_CHECK)
01255 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01256 #else
01257 throw()
01258 #endif
01259 { return _mmsetsup<l_imatrix,l_rmatrix>(cm,rm); }
01260 INLINE l_imatrix_slice &SetSup(l_imatrix_slice &cm,const l_rmatrix &rm)
01261 #if(CXSC_INDEX_CHECK)
01262 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01263 #else
01264 throw()
01265 #endif
01266 { return _msmsetsup<l_imatrix_slice,l_rmatrix>(cm,rm); }
01267 INLINE l_imatrix &SetSup(l_imatrix &cm,const l_rmatrix_slice &rm)
01268 #if(CXSC_INDEX_CHECK)
01269 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01270 #else
01271 throw()
01272 #endif
01273 { return _mmssetsup<l_imatrix,l_rmatrix_slice>(cm,rm); }
01274 INLINE l_imatrix_slice &SetSup(l_imatrix_slice &cm,const l_rmatrix_slice &rm)
01275 #if(CXSC_INDEX_CHECK)
01276 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01277 #else
01278 throw()
01279 #endif
01280 { return _msmssetsup<l_imatrix_slice,l_rmatrix_slice>(cm,rm); }
01281 INLINE l_imatrix &UncheckedSetInf(l_imatrix &cm,const l_rmatrix &rm)
01282 #if(CXSC_INDEX_CHECK)
01283 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01284 #else
01285 throw()
01286 #endif
01287 { return _mmusetinf<l_imatrix,l_rmatrix>(cm,rm); }
01288 INLINE l_imatrix_slice &UncheckedSetInf(l_imatrix_slice &cm,const l_rmatrix &rm)
01289 #if(CXSC_INDEX_CHECK)
01290 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01291 #else
01292 throw()
01293 #endif
01294 { return _msmusetinf<l_imatrix_slice,l_rmatrix>(cm,rm); }
01295 INLINE l_imatrix &UncheckedSetInf(l_imatrix &cm,const l_rmatrix_slice &rm)
01296 #if(CXSC_INDEX_CHECK)
01297 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01298 #else
01299 throw()
01300 #endif
01301 { return _mmsusetinf<l_imatrix,l_rmatrix_slice>(cm,rm); }
01302 INLINE l_imatrix_slice &UncheckedSetInf(l_imatrix_slice &cm,const l_rmatrix_slice &rm)
01303 #if(CXSC_INDEX_CHECK)
01304 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01305 #else
01306 throw()
01307 #endif
01308 { return _msmsusetinf<l_imatrix_slice,l_rmatrix_slice>(cm,rm); }
01309 INLINE l_imatrix &UncheckedSetSup(l_imatrix &cm,const l_rmatrix &rm)
01310 #if(CXSC_INDEX_CHECK)
01311 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01312 #else
01313 throw()
01314 #endif
01315 { return _mmusetsup<l_imatrix,l_rmatrix>(cm,rm); }
01316 INLINE l_imatrix_slice &UncheckedSetSup(l_imatrix_slice &cm,const l_rmatrix &rm)
01317 #if(CXSC_INDEX_CHECK)
01318 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01319 #else
01320 throw()
01321 #endif
01322 { return _msmusetsup<l_imatrix_slice,l_rmatrix>(cm,rm); }
01323 INLINE l_imatrix &UncheckedSetSup(l_imatrix &cm,const l_rmatrix_slice &rm)
01324 #if(CXSC_INDEX_CHECK)
01325 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01326 #else
01327 throw()
01328 #endif
01329 { return _mmsusetsup<l_imatrix,l_rmatrix_slice>(cm,rm); }
01330 INLINE l_imatrix_slice &UncheckedSetSup(l_imatrix_slice &cm,const l_rmatrix_slice &rm)
01331 #if(CXSC_INDEX_CHECK)
01332 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01333 #else
01334 throw()
01335 #endif
01336 { return _msmsusetsup<l_imatrix_slice,l_rmatrix_slice>(cm,rm); }
01337 INLINE l_interval::l_interval(const l_imatrix &m)
01338 #if(CXSC_INDEX_CHECK)
01339 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ)
01340 #else
01341 throw()
01342 #endif
01343 { _smconstr(*this,m); }
01344
01345
01346 INLINE l_imatrix_subv &l_imatrix_subv::operator *=(const real &c) throw() { return _mvsmultassign(*this,c); }
01347 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const real &c) throw() { return _mvsplusassign(*this,c); }
01348 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const real &c) throw() { return _mvsminusassign(*this,c); }
01349 INLINE l_imatrix_subv &l_imatrix_subv::operator /=(const real &c) throw() { return _mvsdivassign(*this,c); }
01350 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const rvector &rv)
01351 #if(CXSC_INDEX_CHECK)
01352 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01353 #else
01354 throw()
01355 #endif
01356 { return _mvvplusassign(*this,rv); }
01357 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const rvector_slice &rv)
01358 #if(CXSC_INDEX_CHECK)
01359 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01360 #else
01361 throw()
01362 #endif
01363 { return _mvvplusassign(*this,rvector(rv)); }
01364 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const rvector &rv)
01365 #if(CXSC_INDEX_CHECK)
01366 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01367 #else
01368 throw()
01369 #endif
01370 { return _mvvminusassign(*this,rv); }
01371 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const rvector_slice &rv)
01372 #if(CXSC_INDEX_CHECK)
01373 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01374 #else
01375 throw()
01376 #endif
01377 { return _mvvminusassign(*this,rvector(rv)); }
01378 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const rvector &rv)
01379 #if(CXSC_INDEX_CHECK)
01380 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01381 #else
01382 throw()
01383 #endif
01384 { return _mvvconvassign(*this,rv); }
01385 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const rvector_slice &rv)
01386 #if(CXSC_INDEX_CHECK)
01387 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01388 #else
01389 throw()
01390 #endif
01391 { return _mvvconvassign(*this,rvector(rv)); }
01392 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const rvector &rv)
01393 #if(CXSC_INDEX_CHECK)
01394 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01395 #else
01396 throw()
01397 #endif
01398 { return _mvvsectassign(*this,rv); }
01399 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const rvector_slice &rv)
01400 #if(CXSC_INDEX_CHECK)
01401 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01402 #else
01403 throw()
01404 #endif
01405 { return _mvvsectassign(*this,rvector(rv)); }
01406
01407 INLINE l_imatrix_subv &l_imatrix_subv::operator *=(const l_real &c) throw() { return _mvsmultassign(*this,c); }
01408 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_real &c) throw() { return _mvsplusassign(*this,c); }
01409 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_real &c) throw() { return _mvsminusassign(*this,c); }
01410 INLINE l_imatrix_subv &l_imatrix_subv::operator /=(const l_real &c) throw() { return _mvsdivassign(*this,c); }
01411 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_rvector &rv)
01412 #if(CXSC_INDEX_CHECK)
01413 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01414 #else
01415 throw()
01416 #endif
01417 { return _mvvplusassign(*this,rv); }
01418 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const l_rvector_slice &rv)
01419 #if(CXSC_INDEX_CHECK)
01420 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01421 #else
01422 throw()
01423 #endif
01424 { return _mvvplusassign(*this,l_rvector(rv)); }
01425 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_rvector &rv)
01426 #if(CXSC_INDEX_CHECK)
01427 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01428 #else
01429 throw()
01430 #endif
01431 { return _mvvminusassign(*this,rv); }
01432 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const l_rvector_slice &rv)
01433 #if(CXSC_INDEX_CHECK)
01434 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01435 #else
01436 throw()
01437 #endif
01438 { return _mvvminusassign(*this,l_rvector(rv)); }
01439 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const l_rvector &rv)
01440 #if(CXSC_INDEX_CHECK)
01441 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01442 #else
01443 throw()
01444 #endif
01445 { return _mvvconvassign(*this,rv); }
01446 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const l_rvector_slice &rv)
01447 #if(CXSC_INDEX_CHECK)
01448 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01449 #else
01450 throw()
01451 #endif
01452 { return _mvvconvassign(*this,l_rvector(rv)); }
01453 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const l_rvector &rv)
01454 #if(CXSC_INDEX_CHECK)
01455 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01456 #else
01457 throw()
01458 #endif
01459 { return _mvvsectassign(*this,rv); }
01460 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const l_rvector_slice &rv)
01461 #if(CXSC_INDEX_CHECK)
01462 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01463 #else
01464 throw()
01465 #endif
01466 { return _mvvsectassign(*this,l_rvector(rv)); }
01467
01468 INLINE l_imatrix_subv &l_imatrix_subv::operator *=(const interval &c) throw() { return _mvsmultassign(*this,c); }
01469 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const interval &c) throw() { return _mvsplusassign(*this,c); }
01470 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const interval &c) throw() { return _mvsminusassign(*this,c); }
01471 INLINE l_imatrix_subv &l_imatrix_subv::operator /=(const interval &c) throw() { return _mvsdivassign(*this,c); }
01472 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const ivector &rv)
01473 #if(CXSC_INDEX_CHECK)
01474 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01475 #else
01476 throw()
01477 #endif
01478 { return _mvvplusassign(*this,rv); }
01479 INLINE l_imatrix_subv &l_imatrix_subv::operator +=(const ivector_slice &rv)
01480 #if(CXSC_INDEX_CHECK)
01481 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01482 #else
01483 throw()
01484 #endif
01485 { return _mvvplusassign(*this,ivector(rv)); }
01486 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const ivector &rv)
01487 #if(CXSC_INDEX_CHECK)
01488 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01489 #else
01490 throw()
01491 #endif
01492 { return _mvvminusassign(*this,rv); }
01493 INLINE l_imatrix_subv &l_imatrix_subv::operator -=(const ivector_slice &rv)
01494 #if(CXSC_INDEX_CHECK)
01495 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01496 #else
01497 throw()
01498 #endif
01499 { return _mvvminusassign(*this,ivector(rv)); }
01500 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const ivector &rv)
01501 #if(CXSC_INDEX_CHECK)
01502 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01503 #else
01504 throw()
01505 #endif
01506 { return _mvvconvassign(*this,rv); }
01507 INLINE l_imatrix_subv &l_imatrix_subv::operator |=(const ivector_slice &rv)
01508 #if(CXSC_INDEX_CHECK)
01509 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01510 #else
01511 throw()
01512 #endif
01513 { return _mvvconvassign(*this,ivector(rv)); }
01514 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const ivector &rv)
01515 #if(CXSC_INDEX_CHECK)
01516 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01517 #else
01518 throw()
01519 #endif
01520 { return _mvvsectassign(*this,rv); }
01521 INLINE l_imatrix_subv &l_imatrix_subv::operator &=(const ivector_slice &rv)
01522 #if(CXSC_INDEX_CHECK)
01523 throw(ERROR_LIVECTOR_OP_WITH_WRONG_DIM)
01524 #else
01525 throw()
01526 #endif
01527 { return _mvvsectassign(*this,ivector(rv)); }
01528
01529
01530 INLINE l_imatrix operator *(const l_interval &c, const l_imatrix &m) throw() { return _smmult<l_interval,l_imatrix,l_imatrix>(c,m); }
01531 INLINE l_imatrix operator *(const l_interval &c, const l_imatrix_slice &ms) throw() { return _smsmult<l_interval,l_imatrix_slice,l_imatrix>(c,ms); }
01532 INLINE l_imatrix operator *(const l_imatrix &m,const l_interval &c) throw() { return _smmult<l_interval,l_imatrix,l_imatrix>(c,m); }
01533 INLINE l_imatrix operator *(const l_imatrix_slice &ms,const l_interval &c) throw() { return _smsmult<l_interval,l_imatrix_slice,l_imatrix>(c,ms); }
01534 INLINE l_imatrix &operator *=(l_imatrix &m,const l_interval &c) throw() { return _msmultassign(m,c); }
01535 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_imatrix &m)
01536 #if(CXSC_INDEX_CHECK)
01537 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01538 #else
01539 throw()
01540 #endif
01541 { return (*this=*this*m); }
01542 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_imatrix_slice &m)
01543 #if(CXSC_INDEX_CHECK)
01544 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01545 #else
01546 throw()
01547 #endif
01548 { return (*this=*this*m); }
01549 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_interval &c) throw() { return _mssmultassign(*this,c); }
01550 INLINE l_imatrix operator /(const l_imatrix &m,const l_interval &c) throw() { return _msdiv<l_imatrix,l_interval,l_imatrix>(m,c); }
01551 INLINE l_imatrix operator /(const l_imatrix_slice &ms, const l_interval &c) throw() { return _mssdiv<l_imatrix_slice,l_interval,l_imatrix>(ms,c); }
01552 INLINE l_imatrix &operator /=(l_imatrix &m,const l_interval &c) throw() { return _msdivassign(m,c); }
01553 INLINE l_imatrix_slice &l_imatrix_slice::operator /=(const l_interval &c) throw() { return _mssdivassign(*this,c); }
01554
01555 INLINE l_imatrix operator *(const real &c, const l_imatrix &m) throw() { return _smmult<real,l_imatrix,l_imatrix>(c,m); }
01556 INLINE l_imatrix operator *(const real &c, const l_imatrix_slice &ms) throw() { return _smsmult<real,l_imatrix_slice,l_imatrix>(c,ms); }
01557 INLINE l_imatrix operator *(const l_imatrix &m,const real &c) throw() { return _smmult<real,l_imatrix,l_imatrix>(c,m); }
01558 INLINE l_imatrix operator *(const l_imatrix_slice &ms,const real &c) throw() { return _smsmult<real,l_imatrix_slice,l_imatrix>(c,ms); }
01559 INLINE l_imatrix &operator *=(l_imatrix &m,const real &c) throw() { return _msmultassign(m,c); }
01560 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const rmatrix &m)
01561 #if(CXSC_INDEX_CHECK)
01562 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01563 #else
01564 throw()
01565 #endif
01566 { return (*this=*this*m); }
01567 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const rmatrix_slice &m)
01568 #if(CXSC_INDEX_CHECK)
01569 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01570 #else
01571 throw()
01572 #endif
01573 { return (*this=*this*m); }
01574 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const real &c) throw() { return _mssmultassign(*this,c); }
01575 INLINE l_imatrix operator /(const l_imatrix &m,const real &c) throw() { return _msdiv<l_imatrix,real,l_imatrix>(m,c); }
01576 INLINE l_imatrix operator /(const l_imatrix_slice &ms, const real &c) throw() { return _mssdiv<l_imatrix_slice,real,l_imatrix>(ms,c); }
01577 INLINE l_imatrix &operator /=(l_imatrix &m,const real &c) throw() { return _msdivassign(m,c); }
01578 INLINE l_imatrix_slice &l_imatrix_slice::operator /=(const real &c) throw() { return _mssdivassign(*this,c); }
01579
01580 INLINE l_imatrix operator *(const l_real &c, const l_imatrix &m) throw() { return _smmult<l_real,l_imatrix,l_imatrix>(c,m); }
01581 INLINE l_imatrix operator *(const l_real &c, const l_imatrix_slice &ms) throw() { return _smsmult<l_real,l_imatrix_slice,l_imatrix>(c,ms); }
01582 INLINE l_imatrix operator *(const l_imatrix &m,const l_real &c) throw() { return _smmult<l_real,l_imatrix,l_imatrix>(c,m); }
01583 INLINE l_imatrix operator *(const l_imatrix_slice &ms,const l_real &c) throw() { return _smsmult<l_real,l_imatrix_slice,l_imatrix>(c,ms); }
01584 INLINE l_imatrix &operator *=(l_imatrix &m,const l_real &c) throw() { return _msmultassign(m,c); }
01585 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_rmatrix &m)
01586 #if(CXSC_INDEX_CHECK)
01587 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01588 #else
01589 throw()
01590 #endif
01591 { return (*this=*this*m); }
01592 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_rmatrix_slice &m)
01593 #if(CXSC_INDEX_CHECK)
01594 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01595 #else
01596 throw()
01597 #endif
01598 { return (*this=*this*m); }
01599 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const l_real &c) throw() { return _mssmultassign(*this,c); }
01600 INLINE l_imatrix operator /(const l_imatrix &m,const l_real &c) throw() { return _msdiv<l_imatrix,l_real,l_imatrix>(m,c); }
01601 INLINE l_imatrix operator /(const l_imatrix_slice &ms, const l_real &c) throw() { return _mssdiv<l_imatrix_slice,l_real,l_imatrix>(ms,c); }
01602 INLINE l_imatrix &operator /=(l_imatrix &m,const l_real &c) throw() { return _msdivassign(m,c); }
01603 INLINE l_imatrix_slice &l_imatrix_slice::operator /=(const l_real &c) throw() { return _mssdivassign(*this,c); }
01604
01605 INLINE l_imatrix operator *(const interval &c, const l_imatrix &m) throw() { return _smmult<interval,l_imatrix,l_imatrix>(c,m); }
01606 INLINE l_imatrix operator *(const interval &c, const l_imatrix_slice &ms) throw() { return _smsmult<interval,l_imatrix_slice,l_imatrix>(c,ms); }
01607 INLINE l_imatrix operator *(const l_imatrix &m,const interval &c) throw() { return _smmult<interval,l_imatrix,l_imatrix>(c,m); }
01608 INLINE l_imatrix operator *(const l_imatrix_slice &ms,const interval &c) throw() { return _smsmult<interval,l_imatrix_slice,l_imatrix>(c,ms); }
01609 INLINE l_imatrix &operator *=(l_imatrix &m,const interval &c) throw() { return _msmultassign(m,c); }
01610 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const imatrix &m)
01611 #if(CXSC_INDEX_CHECK)
01612 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01613 #else
01614 throw()
01615 #endif
01616 { return (*this=*this*m); }
01617 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const imatrix_slice &m)
01618 #if(CXSC_INDEX_CHECK)
01619 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01620 #else
01621 throw()
01622 #endif
01623 { return (*this=*this*m); }
01624 INLINE l_imatrix_slice &l_imatrix_slice::operator *=(const interval &c) throw() { return _mssmultassign(*this,c); }
01625 INLINE l_imatrix operator /(const l_imatrix &m,const interval &c) throw() { return _msdiv<l_imatrix,interval,l_imatrix>(m,c); }
01626 INLINE l_imatrix operator /(const l_imatrix_slice &ms, const interval &c) throw() { return _mssdiv<l_imatrix_slice,interval,l_imatrix>(ms,c); }
01627 INLINE l_imatrix &operator /=(l_imatrix &m,const interval &c) throw() { return _msdivassign(m,c); }
01628 INLINE l_imatrix_slice &l_imatrix_slice::operator /=(const interval &c) throw() { return _mssdivassign(*this,c); }
01629
01630
01631
01632
01633 INLINE l_imatrix operator *(const l_interval &c, const rmatrix &m) throw() { return _smmult<l_interval,rmatrix,l_imatrix>(c,m); }
01634 INLINE l_imatrix operator *(const l_interval &c, const rmatrix_slice &ms) throw() { return _smsmult<l_interval,rmatrix_slice,l_imatrix>(c,ms); }
01635 INLINE l_imatrix operator *(const rmatrix &m,const l_interval &c) throw() { return _smmult<l_interval,rmatrix,l_imatrix>(c,m); }
01636 INLINE l_imatrix operator *(const rmatrix_slice &ms,const l_interval &c) throw() { return _smsmult<l_interval,rmatrix_slice,l_imatrix>(c,ms); }
01637 INLINE l_imatrix operator /(const rmatrix &m,const l_interval &c) throw() { return _msdiv<rmatrix,l_interval,l_imatrix>(m,c); }
01638 INLINE l_imatrix operator /(const rmatrix_slice &ms, const l_interval &c) throw() { return _mssdiv<rmatrix_slice,l_interval,l_imatrix>(ms,c); }
01639
01640 INLINE l_imatrix operator *(const l_interval &c, const l_rmatrix &m) throw() { return _smmult<l_interval,l_rmatrix,l_imatrix>(c,m); }
01641 INLINE l_imatrix operator *(const l_interval &c, const l_rmatrix_slice &ms) throw() { return _smsmult<l_interval,l_rmatrix_slice,l_imatrix>(c,ms); }
01642 INLINE l_imatrix operator *(const l_rmatrix &m,const l_interval &c) throw() { return _smmult<l_interval,l_rmatrix,l_imatrix>(c,m); }
01643 INLINE l_imatrix operator *(const l_rmatrix_slice &ms,const l_interval &c) throw() { return _smsmult<l_interval,l_rmatrix_slice,l_imatrix>(c,ms); }
01644 INLINE l_imatrix operator /(const l_rmatrix &m,const l_interval &c) throw() { return _msdiv<l_rmatrix,l_interval,l_imatrix>(m,c); }
01645 INLINE l_imatrix operator /(const l_rmatrix_slice &ms, const l_interval &c) throw() { return _mssdiv<l_rmatrix_slice,l_interval,l_imatrix>(ms,c); }
01646
01647 INLINE l_imatrix operator *(const l_interval &c, const imatrix &m) throw() { return _smmult<l_interval,imatrix,l_imatrix>(c,m); }
01648 INLINE l_imatrix operator *(const l_interval &c, const imatrix_slice &ms) throw() { return _smsmult<l_interval,imatrix_slice,l_imatrix>(c,ms); }
01649 INLINE l_imatrix operator *(const imatrix &m,const l_interval &c) throw() { return _smmult<l_interval,imatrix,l_imatrix>(c,m); }
01650 INLINE l_imatrix operator *(const imatrix_slice &ms,const l_interval &c) throw() { return _smsmult<l_interval,imatrix_slice,l_imatrix>(c,ms); }
01651 INLINE l_imatrix operator /(const imatrix &m,const l_interval &c) throw() { return _msdiv<imatrix,l_interval,l_imatrix>(m,c); }
01652 INLINE l_imatrix operator /(const imatrix_slice &ms, const l_interval &c) throw() { return _mssdiv<imatrix_slice,l_interval,l_imatrix>(ms,c); }
01653
01654 INLINE l_ivector::l_ivector(const l_imatrix &sl)
01655 #if(CXSC_INDEX_CHECK)
01656 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01657 #else
01658 throw()
01659 #endif
01660 { _vmconstr<l_ivector,l_imatrix,l_interval>(*this,sl); }
01661 INLINE l_ivector::l_ivector(const l_imatrix_slice &sl)
01662 #if(CXSC_INDEX_CHECK)
01663 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01664 #else
01665 throw()
01666 #endif
01667 { _vmsconstr<l_ivector,l_imatrix_slice,l_interval>(*this,sl); }
01668 INLINE l_ivector &l_ivector::operator =(const l_imatrix &m)
01669 #if(CXSC_INDEX_CHECK)
01670 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01671 #else
01672 throw()
01673 #endif
01674 { return _vmassign<l_ivector,l_imatrix,l_interval>(*this,m); }
01675 INLINE l_ivector &l_ivector::operator =(const l_imatrix_slice &m)
01676 #if(CXSC_INDEX_CHECK)
01677 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01678 #else
01679 throw()
01680 #endif
01681 { return _vmassign<l_ivector,l_imatrix,l_interval>(*this,l_imatrix(m)); }
01682 INLINE l_ivector_slice & l_ivector_slice::operator =(const l_imatrix_slice &m)
01683 #if(CXSC_INDEX_CHECK)
01684 throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>,ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01685 #else
01686 throw()
01687 #endif
01688 { return _vsvassign(*this,l_ivector(l_imatrix(m))); }
01689 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_imatrix &m)
01690 #if(CXSC_INDEX_CHECK)
01691 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01692 #else
01693 throw()
01694 #endif
01695 { return _mvvassign(*this,l_ivector(m)); }
01696 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_imatrix_slice &m)
01697 #if(CXSC_INDEX_CHECK)
01698 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01699 #else
01700 throw()
01701 #endif
01702 { return _mvvassign(*this,l_ivector(l_imatrix(m))); }
01703 INLINE l_ivector operator *(const l_imatrix &m,const l_ivector &v)
01704 #if(CXSC_INDEX_CHECK)
01705 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01706 #else
01707 throw()
01708 #endif
01709 { return _mvlimult<l_imatrix,l_ivector,l_ivector>(m,v); }
01710 INLINE l_ivector operator *(const l_imatrix_slice &ms,const l_ivector &v)
01711 #if(CXSC_INDEX_CHECK)
01712 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01713 #else
01714 throw()
01715 #endif
01716 { return _msvlimult<l_imatrix_slice,l_ivector,l_ivector>(ms,v); }
01717 INLINE l_ivector operator *(const l_ivector &v,const l_imatrix &m)
01718 #if(CXSC_INDEX_CHECK)
01719 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01720 #else
01721 throw()
01722 #endif
01723 { return _vmlimult<l_ivector,l_imatrix,l_ivector>(v,m); }
01724 INLINE l_ivector operator *(const l_ivector &v,const l_imatrix_slice &ms)
01725 #if(CXSC_INDEX_CHECK)
01726 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01727 #else
01728 throw()
01729 #endif
01730 { return _vmslimult<l_ivector,l_imatrix_slice,l_ivector>(v,ms); }
01731 INLINE l_ivector &operator *=(l_ivector &v,const l_imatrix &m)
01732 #if(CXSC_INDEX_CHECK)
01733 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01734 #else
01735 throw()
01736 #endif
01737 { return _vmlimultassign<l_ivector,l_imatrix,l_interval>(v,m); }
01738 INLINE l_ivector &operator *=(l_ivector &v,const l_imatrix_slice &ms)
01739 #if(CXSC_INDEX_CHECK)
01740 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01741 #else
01742 throw()
01743 #endif
01744 { return _vmslimultassign<l_ivector,l_imatrix_slice,l_interval>(v,ms); }
01745 INLINE l_ivector_slice &l_ivector_slice::operator *=(const l_imatrix &m)
01746 #if(CXSC_INDEX_CHECK)
01747 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01748 #else
01749 throw()
01750 #endif
01751 { return _vsmlimultassign<l_ivector_slice,l_imatrix,l_interval>(*this,m); }
01752 INLINE l_ivector operator *(const l_ivector_slice &v,const l_imatrix &m)
01753 #if(CXSC_INDEX_CHECK)
01754 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01755 #else
01756 throw()
01757 #endif
01758 { return _vmlimult<l_ivector,l_imatrix,l_ivector>(l_ivector(v),m); }
01759 INLINE l_ivector operator *(const l_ivector_slice &v,const l_imatrix_slice &m)
01760 #if(CXSC_INDEX_CHECK)
01761 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01762 #else
01763 throw()
01764 #endif
01765 { return _vmslimult<l_ivector,l_imatrix_slice,l_ivector>(l_ivector(v),m); }
01766
01767 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const rmatrix &m)
01768 #if(CXSC_INDEX_CHECK)
01769 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01770 #else
01771 throw()
01772 #endif
01773 { return _mvvassign(*this,rvector(m)); }
01774 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const rmatrix_slice &m)
01775 #if(CXSC_INDEX_CHECK)
01776 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01777 #else
01778 throw()
01779 #endif
01780 { return _mvvassign(*this,rvector(rmatrix(m))); }
01781 INLINE l_ivector operator *(const rvector &v,const l_imatrix &m)
01782 #if(CXSC_INDEX_CHECK)
01783 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01784 #else
01785 throw()
01786 #endif
01787 { return _vmlimult<rvector,l_imatrix,l_ivector>(v,m); }
01788 INLINE l_ivector operator *(const rvector &v,const l_imatrix_slice &ms)
01789 #if(CXSC_INDEX_CHECK)
01790 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01791 #else
01792 throw()
01793 #endif
01794 { return _vmslimult<rvector,l_imatrix_slice,l_ivector>(v,ms); }
01795 INLINE l_ivector operator *(const rvector_slice &v,const l_imatrix &m)
01796 #if(CXSC_INDEX_CHECK)
01797 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01798 #else
01799 throw()
01800 #endif
01801 { return _vmlimult<l_ivector,l_imatrix,l_ivector>(l_ivector(v),m); }
01802 INLINE l_ivector operator *(const l_imatrix &m,const rvector &v)
01803 #if(CXSC_INDEX_CHECK)
01804 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01805 #else
01806 throw()
01807 #endif
01808 { return _mvlimult<l_imatrix,rvector,l_ivector>(m,v); }
01809 INLINE l_ivector operator *(const l_imatrix_slice &ms,const rvector &v)
01810 #if(CXSC_INDEX_CHECK)
01811 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01812 #else
01813 throw()
01814 #endif
01815 { return _msvlimult<l_imatrix_slice,rvector,l_ivector>(ms,v); }
01816
01817 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_rmatrix &m)
01818 #if(CXSC_INDEX_CHECK)
01819 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01820 #else
01821 throw()
01822 #endif
01823 { return _mvvassign(*this,l_rvector(m)); }
01824 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const l_rmatrix_slice &m)
01825 #if(CXSC_INDEX_CHECK)
01826 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01827 #else
01828 throw()
01829 #endif
01830 { return _mvvassign(*this,l_rvector(l_rmatrix(m))); }
01831 INLINE l_ivector operator *(const l_rvector &v,const l_imatrix &m)
01832 #if(CXSC_INDEX_CHECK)
01833 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01834 #else
01835 throw()
01836 #endif
01837 { return _vmlimult<l_rvector,l_imatrix,l_ivector>(v,m); }
01838 INLINE l_ivector operator *(const l_rvector &v,const l_imatrix_slice &ms)
01839 #if(CXSC_INDEX_CHECK)
01840 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01841 #else
01842 throw()
01843 #endif
01844 { return _vmslimult<l_rvector,l_imatrix_slice,l_ivector>(v,ms); }
01845 INLINE l_ivector operator *(const l_rvector_slice &v,const l_imatrix &m)
01846 #if(CXSC_INDEX_CHECK)
01847 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01848 #else
01849 throw()
01850 #endif
01851 { return _vmlimult<l_ivector,l_imatrix,l_ivector>(l_ivector(v),m); }
01852 INLINE l_ivector operator *(const l_imatrix &m,const l_rvector &v)
01853 #if(CXSC_INDEX_CHECK)
01854 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01855 #else
01856 throw()
01857 #endif
01858 { return _mvlimult<l_imatrix,l_rvector,l_ivector>(m,v); }
01859 INLINE l_ivector operator *(const l_imatrix_slice &ms,const l_rvector &v)
01860 #if(CXSC_INDEX_CHECK)
01861 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01862 #else
01863 throw()
01864 #endif
01865 { return _msvlimult<l_imatrix_slice,l_rvector,l_ivector>(ms,v); }
01866
01867 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const imatrix &m)
01868 #if(CXSC_INDEX_CHECK)
01869 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01870 #else
01871 throw()
01872 #endif
01873 { return _mvvassign(*this,ivector(m)); }
01874 INLINE l_imatrix_subv &l_imatrix_subv::operator =(const imatrix_slice &m)
01875 #if(CXSC_INDEX_CHECK)
01876 throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ)
01877 #else
01878 throw()
01879 #endif
01880 { return _mvvassign(*this,ivector(imatrix(m))); }
01881 INLINE l_ivector operator *(const ivector &v,const l_imatrix &m)
01882 #if(CXSC_INDEX_CHECK)
01883 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01884 #else
01885 throw()
01886 #endif
01887 { return _vmlimult<ivector,l_imatrix,l_ivector>(v,m); }
01888 INLINE l_ivector operator *(const ivector &v,const l_imatrix_slice &ms)
01889 #if(CXSC_INDEX_CHECK)
01890 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01891 #else
01892 throw()
01893 #endif
01894 { return _vmslimult<ivector,l_imatrix_slice,l_ivector>(v,ms); }
01895 INLINE l_ivector operator *(const ivector_slice &v,const l_imatrix &m)
01896 #if(CXSC_INDEX_CHECK)
01897 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01898 #else
01899 throw()
01900 #endif
01901 { return _vmlimult<l_ivector,l_imatrix,l_ivector>(l_ivector(v),m); }
01902 INLINE l_ivector operator *(const l_imatrix &m,const ivector &v)
01903 #if(CXSC_INDEX_CHECK)
01904 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01905 #else
01906 throw()
01907 #endif
01908 { return _mvlimult<l_imatrix,ivector,l_ivector>(m,v); }
01909 INLINE l_ivector operator *(const l_imatrix_slice &ms,const ivector &v)
01910 #if(CXSC_INDEX_CHECK)
01911 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01912 #else
01913 throw()
01914 #endif
01915 { return _msvlimult<l_imatrix_slice,ivector,l_ivector>(ms,v); }
01916
01917 INLINE const l_imatrix &operator +(const l_imatrix &m) throw() { return m; }
01918 INLINE l_imatrix operator +(const l_imatrix_slice &m) throw() { return l_imatrix(m); }
01919 INLINE l_imatrix operator +(const l_imatrix &m1,const l_imatrix &m2)
01920 #if(CXSC_INDEX_CHECK)
01921 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01922 #else
01923 throw()
01924 #endif
01925 { return _mmplus<l_imatrix,l_imatrix,l_imatrix>(m1,m2); }
01926 INLINE l_imatrix operator +(const l_imatrix &m,const l_imatrix_slice &ms)
01927 #if(CXSC_INDEX_CHECK)
01928 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01929 #else
01930 throw()
01931 #endif
01932 { return _mmsplus<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
01933 INLINE l_imatrix operator +(const l_imatrix_slice &ms,const l_imatrix &m)
01934 #if(CXSC_INDEX_CHECK)
01935 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01936 #else
01937 throw()
01938 #endif
01939 { return _mmsplus<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
01940 INLINE l_imatrix operator +(const l_imatrix_slice &m1,const l_imatrix_slice &m2)
01941 #if(CXSC_INDEX_CHECK)
01942 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01943 #else
01944 throw()
01945 #endif
01946 { return _msmsplus<l_imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
01947 INLINE l_imatrix &operator +=(l_imatrix &m1,const l_imatrix &m2)
01948 #if(CXSC_INDEX_CHECK)
01949 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01950 #else
01951 throw()
01952 #endif
01953 { return _mmplusassign(m1,m2); }
01954 INLINE l_imatrix &operator +=(l_imatrix &m1,const l_imatrix_slice &ms)
01955 #if(CXSC_INDEX_CHECK)
01956 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01957 #else
01958 throw()
01959 #endif
01960 { return _mmsplusassign(m1,ms); }
01961 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const l_imatrix &m1)
01962 #if(CXSC_INDEX_CHECK)
01963 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01964 #else
01965 throw()
01966 #endif
01967 { return _msmplusassign(*this,m1); }
01968 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const l_imatrix_slice &ms2)
01969 #if(CXSC_INDEX_CHECK)
01970 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01971 #else
01972 throw()
01973 #endif
01974 { return _msmsplusassign(*this,ms2); }
01975 INLINE l_imatrix operator -(const l_imatrix &m) throw() { return _mminus(m); }
01976 INLINE l_imatrix operator -(const l_imatrix_slice &m) throw() { return _msminus<l_imatrix_slice,l_imatrix>(m); }
01977 INLINE l_imatrix operator -(const l_imatrix &m1,const l_imatrix &m2)
01978 #if(CXSC_INDEX_CHECK)
01979 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01980 #else
01981 throw()
01982 #endif
01983 { return _mmminus<l_imatrix,l_imatrix,l_imatrix>(m1,m2); }
01984 INLINE l_imatrix operator -(const l_imatrix &m,const l_imatrix_slice &ms)
01985 #if(CXSC_INDEX_CHECK)
01986 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01987 #else
01988 throw()
01989 #endif
01990 { return _mmsminus<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
01991 INLINE l_imatrix operator -(const l_imatrix_slice &ms,const l_imatrix &m)
01992 #if(CXSC_INDEX_CHECK)
01993 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
01994 #else
01995 throw()
01996 #endif
01997 { return _msmminus<l_imatrix_slice,l_imatrix,l_imatrix>(ms,m); }
01998 INLINE l_imatrix operator -(const l_imatrix_slice &ms1,const l_imatrix_slice &ms2)
01999 #if(CXSC_INDEX_CHECK)
02000 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02001 #else
02002 throw()
02003 #endif
02004 { return _msmsminus<l_imatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02005 INLINE l_imatrix &operator -=(l_imatrix &m1,const l_imatrix &m2)
02006 #if(CXSC_INDEX_CHECK)
02007 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02008 #else
02009 throw()
02010 #endif
02011 { return _mmminusassign(m1,m2); }
02012 INLINE l_imatrix &operator -=(l_imatrix &m1,const l_imatrix_slice &ms)
02013 #if(CXSC_INDEX_CHECK)
02014 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02015 #else
02016 throw()
02017 #endif
02018 { return _mmsminusassign(m1,ms); }
02019 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const l_imatrix &m1)
02020 #if(CXSC_INDEX_CHECK)
02021 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02022 #else
02023 throw()
02024 #endif
02025 { return _msmminusassign(*this,m1); }
02026 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const l_imatrix_slice &ms2)
02027 #if(CXSC_INDEX_CHECK)
02028 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02029 #else
02030 throw()
02031 #endif
02032 { return _msmsminusassign(*this,ms2); }
02033 INLINE l_imatrix operator *(const l_imatrix &m1, const l_imatrix &m2)
02034 #if(CXSC_INDEX_CHECK)
02035 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02036 #else
02037 throw()
02038 #endif
02039 { return _mmlimult<l_imatrix,l_imatrix,l_imatrix>(m1,m2); }
02040 INLINE l_imatrix operator *(const l_imatrix &m1, const l_imatrix_slice &ms)
02041 #if(CXSC_INDEX_CHECK)
02042 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02043 #else
02044 throw()
02045 #endif
02046 { return _mmslimult<l_imatrix,l_imatrix_slice,l_imatrix>(m1,ms); }
02047 INLINE l_imatrix operator *(const l_imatrix_slice &ms, const l_imatrix &m1)
02048 #if(CXSC_INDEX_CHECK)
02049 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02050 #else
02051 throw()
02052 #endif
02053 { return _msmlimult<l_imatrix_slice,l_imatrix,l_imatrix>(ms,m1); }
02054 INLINE l_imatrix operator *(const l_imatrix_slice &ms1, const l_imatrix_slice &ms2)
02055 #if(CXSC_INDEX_CHECK)
02056 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02057 #else
02058 throw()
02059 #endif
02060 { return _msmslimult<l_imatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02061 INLINE l_imatrix &operator *=(l_imatrix &m1,const l_imatrix &m2)
02062 #if(CXSC_INDEX_CHECK)
02063 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02064 #else
02065 throw()
02066 #endif
02067 { return _mmlimultassign<l_imatrix,l_imatrix,l_interval>(m1,m2); }
02068 INLINE l_imatrix &operator *=(l_imatrix &m1,const l_imatrix_slice &ms)
02069 #if(CXSC_INDEX_CHECK)
02070 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02071 #else
02072 throw()
02073 #endif
02074 { return _mmslimultassign<l_imatrix,l_imatrix_slice,l_interval>(m1,ms); }
02075 INLINE l_imatrix operator |(const l_imatrix &m1,const l_imatrix &m2)
02076 #if(CXSC_INDEX_CHECK)
02077 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02078 #else
02079 throw()
02080 #endif
02081 { return _mmconv<l_imatrix,l_imatrix,l_imatrix>(m1,m2); }
02082 INLINE l_imatrix operator |(const l_imatrix &m,const l_imatrix_slice &ms)
02083 #if(CXSC_INDEX_CHECK)
02084 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02085 #else
02086 throw()
02087 #endif
02088 { return _mmsconv<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02089 INLINE l_imatrix operator |(const l_imatrix_slice &ms,const l_imatrix &m)
02090 #if(CXSC_INDEX_CHECK)
02091 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02092 #else
02093 throw()
02094 #endif
02095 { return _mmsconv<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02096 INLINE l_imatrix operator |(const l_imatrix_slice &m1,const l_imatrix_slice &m2)
02097 #if(CXSC_INDEX_CHECK)
02098 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02099 #else
02100 throw()
02101 #endif
02102 { return _msmsconv<l_imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02103 INLINE l_imatrix &operator |=(l_imatrix &m1,const l_imatrix &m2)
02104 #if(CXSC_INDEX_CHECK)
02105 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02106 #else
02107 throw()
02108 #endif
02109 { return _mmconvassign(m1,m2); }
02110 INLINE l_imatrix &operator |=(l_imatrix &m1,const l_imatrix_slice &ms)
02111 #if(CXSC_INDEX_CHECK)
02112 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02113 #else
02114 throw()
02115 #endif
02116 { return _mmsconvassign(m1,ms); }
02117 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const l_imatrix &m1)
02118 #if(CXSC_INDEX_CHECK)
02119 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02120 #else
02121 throw()
02122 #endif
02123 { return _msmconvassign(*this,m1); }
02124 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const l_imatrix_slice &ms2)
02125 #if(CXSC_INDEX_CHECK)
02126 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02127 #else
02128 throw()
02129 #endif
02130 { return _msmsconvassign(*this,ms2); }
02131 INLINE l_imatrix operator &(const l_imatrix &m1,const l_imatrix &m2)
02132 #if(CXSC_INDEX_CHECK)
02133 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02134 #else
02135 throw()
02136 #endif
02137 { return _mmsect<l_imatrix,l_imatrix,l_imatrix>(m1,m2); }
02138 INLINE l_imatrix operator &(const l_imatrix &m,const l_imatrix_slice &ms)
02139 #if(CXSC_INDEX_CHECK)
02140 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02141 #else
02142 throw()
02143 #endif
02144 { return _mmssect<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02145 INLINE l_imatrix operator &(const l_imatrix_slice &ms,const l_imatrix &m)
02146 #if(CXSC_INDEX_CHECK)
02147 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02148 #else
02149 throw()
02150 #endif
02151 { return _mmssect<l_imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02152 INLINE l_imatrix operator &(const l_imatrix_slice &m1,const l_imatrix_slice &m2)
02153 #if(CXSC_INDEX_CHECK)
02154 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02155 #else
02156 throw()
02157 #endif
02158 { return _msmssect<l_imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02159 INLINE l_imatrix &operator &=(l_imatrix &m1,const l_imatrix &m2)
02160 #if(CXSC_INDEX_CHECK)
02161 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02162 #else
02163 throw()
02164 #endif
02165 { return _mmsectassign(m1,m2); }
02166 INLINE l_imatrix &operator &=(l_imatrix &m1,const l_imatrix_slice &ms)
02167 #if(CXSC_INDEX_CHECK)
02168 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02169 #else
02170 throw()
02171 #endif
02172 { return _mmssectassign(m1,ms); }
02173 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const l_imatrix &m1)
02174 #if(CXSC_INDEX_CHECK)
02175 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02176 #else
02177 throw()
02178 #endif
02179 { return _msmsectassign(*this,m1); }
02180 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const l_imatrix_slice &ms2)
02181 #if(CXSC_INDEX_CHECK)
02182 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02183 #else
02184 throw()
02185 #endif
02186 { return _msmssectassign(*this,ms2); }
02187
02188 INLINE l_imatrix operator +(const rmatrix &m1,const l_imatrix &m2)
02189 #if(CXSC_INDEX_CHECK)
02190 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02191 #else
02192 throw()
02193 #endif
02194 { return _mmplus<rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02195 INLINE l_imatrix operator +(const l_imatrix &m1,const rmatrix &m2)
02196 #if(CXSC_INDEX_CHECK)
02197 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02198 #else
02199 throw()
02200 #endif
02201 { return _mmplus<rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02202 INLINE l_imatrix operator +(const rmatrix &m,const l_imatrix_slice &ms)
02203 #if(CXSC_INDEX_CHECK)
02204 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02205 #else
02206 throw()
02207 #endif
02208 { return _mmsplus<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02209 INLINE l_imatrix operator +(const l_imatrix &m,const rmatrix_slice &ms)
02210 #if(CXSC_INDEX_CHECK)
02211 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02212 #else
02213 throw()
02214 #endif
02215 { return _mmsplus<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02216 INLINE l_imatrix operator +(const rmatrix_slice &ms,const l_imatrix &m)
02217 #if(CXSC_INDEX_CHECK)
02218 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02219 #else
02220 throw()
02221 #endif
02222 { return _mmsplus<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02223 INLINE l_imatrix operator +(const l_imatrix_slice &ms,const rmatrix &m)
02224 #if(CXSC_INDEX_CHECK)
02225 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02226 #else
02227 throw()
02228 #endif
02229 { return _mmsplus<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02230 INLINE l_imatrix operator +(const rmatrix_slice &m1,const l_imatrix_slice &m2)
02231 #if(CXSC_INDEX_CHECK)
02232 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02233 #else
02234 throw()
02235 #endif
02236 { return _msmsplus<rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02237 INLINE l_imatrix operator +(const l_imatrix_slice &m1,const rmatrix_slice &m2)
02238 #if(CXSC_INDEX_CHECK)
02239 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02240 #else
02241 throw()
02242 #endif
02243 { return _msmsplus<rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02244 INLINE l_imatrix &operator +=(l_imatrix &m1,const rmatrix &m2)
02245 #if(CXSC_INDEX_CHECK)
02246 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02247 #else
02248 throw()
02249 #endif
02250 { return _mmplusassign(m1,m2); }
02251 INLINE l_imatrix &operator +=(l_imatrix &m1,const rmatrix_slice &ms)
02252 #if(CXSC_INDEX_CHECK)
02253 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02254 #else
02255 throw()
02256 #endif
02257 { return _mmsplusassign(m1,ms); }
02258 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const rmatrix &m1)
02259 #if(CXSC_INDEX_CHECK)
02260 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02261 #else
02262 throw()
02263 #endif
02264 { return _msmplusassign(*this,m1); }
02265 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const rmatrix_slice &ms2)
02266 #if(CXSC_INDEX_CHECK)
02267 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02268 #else
02269 throw()
02270 #endif
02271 { return _msmsplusassign(*this,ms2); }
02272 INLINE l_imatrix operator -(const rmatrix &m1,const l_imatrix &m2)
02273 #if(CXSC_INDEX_CHECK)
02274 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02275 #else
02276 throw()
02277 #endif
02278 { return _mmminus<rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02279 INLINE l_imatrix operator -(const l_imatrix &m1,const rmatrix &m2)
02280 #if(CXSC_INDEX_CHECK)
02281 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02282 #else
02283 throw()
02284 #endif
02285 { return _mmminus<l_imatrix,rmatrix,l_imatrix>(m1,m2); }
02286 INLINE l_imatrix operator -(const rmatrix &m,const l_imatrix_slice &ms)
02287 #if(CXSC_INDEX_CHECK)
02288 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02289 #else
02290 throw()
02291 #endif
02292 { return _mmsminus<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02293 INLINE l_imatrix operator -(const l_imatrix &m,const rmatrix_slice &ms)
02294 #if(CXSC_INDEX_CHECK)
02295 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02296 #else
02297 throw()
02298 #endif
02299 { return _mmsminus<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02300 INLINE l_imatrix operator -(const rmatrix_slice &ms,const l_imatrix &m)
02301 #if(CXSC_INDEX_CHECK)
02302 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02303 #else
02304 throw()
02305 #endif
02306 { return _msmminus<rmatrix_slice,l_imatrix,l_imatrix>(ms,m); }
02307 INLINE l_imatrix operator -(const l_imatrix_slice &ms,const rmatrix &m)
02308 #if(CXSC_INDEX_CHECK)
02309 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02310 #else
02311 throw()
02312 #endif
02313 { return _msmminus<l_imatrix_slice,rmatrix,l_imatrix>(ms,m); }
02314 INLINE l_imatrix operator -(const rmatrix_slice &ms1,const l_imatrix_slice &ms2)
02315 #if(CXSC_INDEX_CHECK)
02316 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02317 #else
02318 throw()
02319 #endif
02320 { return _msmsminus<rmatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02321 INLINE l_imatrix operator -(const l_imatrix_slice &ms1,const rmatrix_slice &ms2)
02322 #if(CXSC_INDEX_CHECK)
02323 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02324 #else
02325 throw()
02326 #endif
02327 { return _msmsminus<l_imatrix_slice,rmatrix_slice,l_imatrix>(ms1,ms2); }
02328 INLINE l_imatrix &operator -=(l_imatrix &m1,const rmatrix &m2)
02329 #if(CXSC_INDEX_CHECK)
02330 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02331 #else
02332 throw()
02333 #endif
02334 { return _mmminusassign(m1,m2); }
02335 INLINE l_imatrix &operator -=(l_imatrix &m1,const rmatrix_slice &ms)
02336 #if(CXSC_INDEX_CHECK)
02337 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02338 #else
02339 throw()
02340 #endif
02341 { return _mmsminusassign(m1,ms); }
02342 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const rmatrix &m1)
02343 #if(CXSC_INDEX_CHECK)
02344 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02345 #else
02346 throw()
02347 #endif
02348 { return _msmminusassign(*this,m1); }
02349 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const rmatrix_slice &ms2)
02350 #if(CXSC_INDEX_CHECK)
02351 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02352 #else
02353 throw()
02354 #endif
02355 { return _msmsminusassign(*this,ms2); }
02356 INLINE l_imatrix operator *(const rmatrix &m1, const l_imatrix &m2)
02357 #if(CXSC_INDEX_CHECK)
02358 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02359 #else
02360 throw()
02361 #endif
02362 { return _mmlimult<rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02363 INLINE l_imatrix operator *(const l_imatrix &m1, const rmatrix &m2)
02364 #if(CXSC_INDEX_CHECK)
02365 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02366 #else
02367 throw()
02368 #endif
02369 { return _mmlimult<l_imatrix,rmatrix,l_imatrix>(m1,m2); }
02370 INLINE l_imatrix operator *(const rmatrix &m1, const l_imatrix_slice &ms)
02371 #if(CXSC_INDEX_CHECK)
02372 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02373 #else
02374 throw()
02375 #endif
02376 { return _mmslimult<rmatrix,l_imatrix_slice,l_imatrix>(m1,ms); }
02377 INLINE l_imatrix operator *(const l_imatrix &m1, const rmatrix_slice &ms)
02378 #if(CXSC_INDEX_CHECK)
02379 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02380 #else
02381 throw()
02382 #endif
02383 { return _mmslimult<l_imatrix,rmatrix_slice,l_imatrix>(m1,ms); }
02384 INLINE l_imatrix operator *(const rmatrix_slice &ms, const l_imatrix &m1)
02385 #if(CXSC_INDEX_CHECK)
02386 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02387 #else
02388 throw()
02389 #endif
02390 { return _msmlimult<rmatrix_slice,l_imatrix,l_imatrix>(ms,m1); }
02391 INLINE l_imatrix operator *(const l_imatrix_slice &ms, const rmatrix &m1)
02392 #if(CXSC_INDEX_CHECK)
02393 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02394 #else
02395 throw()
02396 #endif
02397 { return _msmlimult<l_imatrix_slice,rmatrix,l_imatrix>(ms,m1); }
02398 INLINE l_imatrix operator *(const rmatrix_slice &ms1, const l_imatrix_slice &ms2)
02399 #if(CXSC_INDEX_CHECK)
02400 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02401 #else
02402 throw()
02403 #endif
02404 { return _msmslimult<rmatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02405 INLINE l_imatrix operator *(const l_imatrix_slice &ms1, const rmatrix_slice &ms2)
02406 #if(CXSC_INDEX_CHECK)
02407 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02408 #else
02409 throw()
02410 #endif
02411 { return _msmslimult<l_imatrix_slice,rmatrix_slice,l_imatrix>(ms1,ms2); }
02412 INLINE l_imatrix &operator *=(l_imatrix &m1,const rmatrix &m2)
02413 #if(CXSC_INDEX_CHECK)
02414 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02415 #else
02416 throw()
02417 #endif
02418 { return _mmlimultassign<l_imatrix,rmatrix,l_interval>(m1,m2); }
02419 INLINE l_imatrix &operator *=(l_imatrix &m1,const rmatrix_slice &ms)
02420 #if(CXSC_INDEX_CHECK)
02421 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02422 #else
02423 throw()
02424 #endif
02425 { return _mmslimultassign<l_imatrix,rmatrix_slice,l_interval>(m1,ms); }
02426 INLINE l_imatrix operator |(const rmatrix &m1,const l_imatrix &m2)
02427 #if(CXSC_INDEX_CHECK)
02428 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02429 #else
02430 throw()
02431 #endif
02432 { return _mmconv<rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02433 INLINE l_imatrix operator |(const l_imatrix &m1,const rmatrix &m2)
02434 #if(CXSC_INDEX_CHECK)
02435 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02436 #else
02437 throw()
02438 #endif
02439 { return _mmconv<rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02440 INLINE l_imatrix operator |(const rmatrix &m,const l_imatrix_slice &ms)
02441 #if(CXSC_INDEX_CHECK)
02442 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02443 #else
02444 throw()
02445 #endif
02446 { return _mmsconv<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02447 INLINE l_imatrix operator |(const l_imatrix &m,const rmatrix_slice &ms)
02448 #if(CXSC_INDEX_CHECK)
02449 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02450 #else
02451 throw()
02452 #endif
02453 { return _mmsconv<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02454 INLINE l_imatrix operator |(const rmatrix_slice &ms,const l_imatrix &m)
02455 #if(CXSC_INDEX_CHECK)
02456 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02457 #else
02458 throw()
02459 #endif
02460 { return _mmsconv<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02461 INLINE l_imatrix operator |(const l_imatrix_slice &ms,const rmatrix &m)
02462 #if(CXSC_INDEX_CHECK)
02463 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02464 #else
02465 throw()
02466 #endif
02467 { return _mmsconv<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02468 INLINE l_imatrix operator |(const rmatrix_slice &m1,const l_imatrix_slice &m2)
02469 #if(CXSC_INDEX_CHECK)
02470 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02471 #else
02472 throw()
02473 #endif
02474 { return _msmsconv<rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02475 INLINE l_imatrix operator |(const l_imatrix_slice &m1,const rmatrix_slice &m2)
02476 #if(CXSC_INDEX_CHECK)
02477 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02478 #else
02479 throw()
02480 #endif
02481 { return _msmsconv<rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02482 INLINE l_imatrix &operator |=(l_imatrix &m1,const rmatrix &m2)
02483 #if(CXSC_INDEX_CHECK)
02484 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02485 #else
02486 throw()
02487 #endif
02488 { return _mmconvassign(m1,m2); }
02489 INLINE l_imatrix &operator |=(l_imatrix &m1,const rmatrix_slice &ms)
02490 #if(CXSC_INDEX_CHECK)
02491 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02492 #else
02493 throw()
02494 #endif
02495 { return _mmsconvassign(m1,ms); }
02496 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const rmatrix &m1)
02497 #if(CXSC_INDEX_CHECK)
02498 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02499 #else
02500 throw()
02501 #endif
02502 { return _msmconvassign(*this,m1); }
02503 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const rmatrix_slice &ms2)
02504 #if(CXSC_INDEX_CHECK)
02505 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02506 #else
02507 throw()
02508 #endif
02509 { return _msmsconvassign(*this,ms2); }
02510 INLINE l_imatrix operator &(const rmatrix &m1,const l_imatrix &m2)
02511 #if(CXSC_INDEX_CHECK)
02512 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02513 #else
02514 throw()
02515 #endif
02516 { return _mmsect<rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02517 INLINE l_imatrix operator &(const l_imatrix &m1,const rmatrix &m2)
02518 #if(CXSC_INDEX_CHECK)
02519 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02520 #else
02521 throw()
02522 #endif
02523 { return _mmsect<rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02524 INLINE l_imatrix operator &(const rmatrix &m,const l_imatrix_slice &ms)
02525 #if(CXSC_INDEX_CHECK)
02526 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02527 #else
02528 throw()
02529 #endif
02530 { return _mmssect<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02531 INLINE l_imatrix operator &(const l_imatrix &m,const rmatrix_slice &ms)
02532 #if(CXSC_INDEX_CHECK)
02533 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02534 #else
02535 throw()
02536 #endif
02537 { return _mmssect<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02538 INLINE l_imatrix operator &(const rmatrix_slice &ms,const l_imatrix &m)
02539 #if(CXSC_INDEX_CHECK)
02540 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02541 #else
02542 throw()
02543 #endif
02544 { return _mmssect<l_imatrix,rmatrix_slice,l_imatrix>(m,ms); }
02545 INLINE l_imatrix operator &(const l_imatrix_slice &ms,const rmatrix &m)
02546 #if(CXSC_INDEX_CHECK)
02547 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02548 #else
02549 throw()
02550 #endif
02551 { return _mmssect<rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02552 INLINE l_imatrix operator &(const rmatrix_slice &m1,const l_imatrix_slice &m2)
02553 #if(CXSC_INDEX_CHECK)
02554 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02555 #else
02556 throw()
02557 #endif
02558 { return _msmssect<rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02559 INLINE l_imatrix operator &(const l_imatrix_slice &m1,const rmatrix_slice &m2)
02560 #if(CXSC_INDEX_CHECK)
02561 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02562 #else
02563 throw()
02564 #endif
02565 { return _msmssect<rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02566 INLINE l_imatrix &operator &=(l_imatrix &m1,const rmatrix &m2)
02567 #if(CXSC_INDEX_CHECK)
02568 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02569 #else
02570 throw()
02571 #endif
02572 { return _mmsectassign(m1,m2); }
02573 INLINE l_imatrix &operator &=(l_imatrix &m1,const rmatrix_slice &ms)
02574 #if(CXSC_INDEX_CHECK)
02575 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02576 #else
02577 throw()
02578 #endif
02579 { return _mmssectassign(m1,ms); }
02580 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const rmatrix &m1)
02581 #if(CXSC_INDEX_CHECK)
02582 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02583 #else
02584 throw()
02585 #endif
02586 { return _msmsectassign(*this,m1); }
02587 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const rmatrix_slice &ms2)
02588 #if(CXSC_INDEX_CHECK)
02589 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02590 #else
02591 throw()
02592 #endif
02593 { return _msmssectassign(*this,ms2); }
02594
02595 INLINE l_imatrix operator +(const l_rmatrix &m1,const l_imatrix &m2)
02596 #if(CXSC_INDEX_CHECK)
02597 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02598 #else
02599 throw()
02600 #endif
02601 { return _mmplus<l_rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02602 INLINE l_imatrix operator +(const l_imatrix &m1,const l_rmatrix &m2)
02603 #if(CXSC_INDEX_CHECK)
02604 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02605 #else
02606 throw()
02607 #endif
02608 { return _mmplus<l_rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02609 INLINE l_imatrix operator +(const l_rmatrix &m,const l_imatrix_slice &ms)
02610 #if(CXSC_INDEX_CHECK)
02611 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02612 #else
02613 throw()
02614 #endif
02615 { return _mmsplus<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02616 INLINE l_imatrix operator +(const l_imatrix &m,const l_rmatrix_slice &ms)
02617 #if(CXSC_INDEX_CHECK)
02618 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02619 #else
02620 throw()
02621 #endif
02622 { return _mmsplus<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02623 INLINE l_imatrix operator +(const l_rmatrix_slice &ms,const l_imatrix &m)
02624 #if(CXSC_INDEX_CHECK)
02625 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02626 #else
02627 throw()
02628 #endif
02629 { return _mmsplus<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02630 INLINE l_imatrix operator +(const l_imatrix_slice &ms,const l_rmatrix &m)
02631 #if(CXSC_INDEX_CHECK)
02632 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02633 #else
02634 throw()
02635 #endif
02636 { return _mmsplus<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02637 INLINE l_imatrix operator +(const l_rmatrix_slice &m1,const l_imatrix_slice &m2)
02638 #if(CXSC_INDEX_CHECK)
02639 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02640 #else
02641 throw()
02642 #endif
02643 { return _msmsplus<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02644 INLINE l_imatrix operator +(const l_imatrix_slice &m1,const l_rmatrix_slice &m2)
02645 #if(CXSC_INDEX_CHECK)
02646 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02647 #else
02648 throw()
02649 #endif
02650 { return _msmsplus<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02651 INLINE l_imatrix &operator +=(l_imatrix &m1,const l_rmatrix &m2)
02652 #if(CXSC_INDEX_CHECK)
02653 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02654 #else
02655 throw()
02656 #endif
02657 { return _mmplusassign(m1,m2); }
02658 INLINE l_imatrix &operator +=(l_imatrix &m1,const l_rmatrix_slice &ms)
02659 #if(CXSC_INDEX_CHECK)
02660 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02661 #else
02662 throw()
02663 #endif
02664 { return _mmsplusassign(m1,ms); }
02665 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const l_rmatrix &m1)
02666 #if(CXSC_INDEX_CHECK)
02667 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02668 #else
02669 throw()
02670 #endif
02671 { return _msmplusassign(*this,m1); }
02672 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const l_rmatrix_slice &ms2)
02673 #if(CXSC_INDEX_CHECK)
02674 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02675 #else
02676 throw()
02677 #endif
02678 { return _msmsplusassign(*this,ms2); }
02679 INLINE l_imatrix operator -(const l_rmatrix &m1,const l_imatrix &m2)
02680 #if(CXSC_INDEX_CHECK)
02681 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02682 #else
02683 throw()
02684 #endif
02685 { return _mmminus<l_rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02686 INLINE l_imatrix operator -(const l_imatrix &m1,const l_rmatrix &m2)
02687 #if(CXSC_INDEX_CHECK)
02688 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02689 #else
02690 throw()
02691 #endif
02692 { return _mmminus<l_imatrix,l_rmatrix,l_imatrix>(m1,m2); }
02693 INLINE l_imatrix operator -(const l_rmatrix &m,const l_imatrix_slice &ms)
02694 #if(CXSC_INDEX_CHECK)
02695 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02696 #else
02697 throw()
02698 #endif
02699 { return _mmsminus<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02700 INLINE l_imatrix operator -(const l_imatrix &m,const l_rmatrix_slice &ms)
02701 #if(CXSC_INDEX_CHECK)
02702 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02703 #else
02704 throw()
02705 #endif
02706 { return _mmsminus<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02707 INLINE l_imatrix operator -(const l_rmatrix_slice &ms,const l_imatrix &m)
02708 #if(CXSC_INDEX_CHECK)
02709 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02710 #else
02711 throw()
02712 #endif
02713 { return _msmminus<l_rmatrix_slice,l_imatrix,l_imatrix>(ms,m); }
02714 INLINE l_imatrix operator -(const l_imatrix_slice &ms,const l_rmatrix &m)
02715 #if(CXSC_INDEX_CHECK)
02716 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02717 #else
02718 throw()
02719 #endif
02720 { return _msmminus<l_imatrix_slice,l_rmatrix,l_imatrix>(ms,m); }
02721 INLINE l_imatrix operator -(const l_rmatrix_slice &ms1,const l_imatrix_slice &ms2)
02722 #if(CXSC_INDEX_CHECK)
02723 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02724 #else
02725 throw()
02726 #endif
02727 { return _msmsminus<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02728 INLINE l_imatrix operator -(const l_imatrix_slice &ms1,const l_rmatrix_slice &ms2)
02729 #if(CXSC_INDEX_CHECK)
02730 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02731 #else
02732 throw()
02733 #endif
02734 { return _msmsminus<l_imatrix_slice,l_rmatrix_slice,l_imatrix>(ms1,ms2); }
02735 INLINE l_imatrix &operator -=(l_imatrix &m1,const l_rmatrix &m2)
02736 #if(CXSC_INDEX_CHECK)
02737 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02738 #else
02739 throw()
02740 #endif
02741 { return _mmminusassign(m1,m2); }
02742 INLINE l_imatrix &operator -=(l_imatrix &m1,const l_rmatrix_slice &ms)
02743 #if(CXSC_INDEX_CHECK)
02744 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02745 #else
02746 throw()
02747 #endif
02748 { return _mmsminusassign(m1,ms); }
02749 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const l_rmatrix &m1)
02750 #if(CXSC_INDEX_CHECK)
02751 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02752 #else
02753 throw()
02754 #endif
02755 { return _msmminusassign(*this,m1); }
02756 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const l_rmatrix_slice &ms2)
02757 #if(CXSC_INDEX_CHECK)
02758 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02759 #else
02760 throw()
02761 #endif
02762 { return _msmsminusassign(*this,ms2); }
02763 INLINE l_imatrix operator *(const l_rmatrix &m1, const l_imatrix &m2)
02764 #if(CXSC_INDEX_CHECK)
02765 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02766 #else
02767 throw()
02768 #endif
02769 { return _mmlimult<l_rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02770 INLINE l_imatrix operator *(const l_imatrix &m1, const l_rmatrix &m2)
02771 #if(CXSC_INDEX_CHECK)
02772 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02773 #else
02774 throw()
02775 #endif
02776 { return _mmlimult<l_imatrix,l_rmatrix,l_imatrix>(m1,m2); }
02777 INLINE l_imatrix operator *(const l_rmatrix &m1, const l_imatrix_slice &ms)
02778 #if(CXSC_INDEX_CHECK)
02779 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02780 #else
02781 throw()
02782 #endif
02783 { return _mmslimult<l_rmatrix,l_imatrix_slice,l_imatrix>(m1,ms); }
02784 INLINE l_imatrix operator *(const l_imatrix &m1, const l_rmatrix_slice &ms)
02785 #if(CXSC_INDEX_CHECK)
02786 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02787 #else
02788 throw()
02789 #endif
02790 { return _mmslimult<l_imatrix,l_rmatrix_slice,l_imatrix>(m1,ms); }
02791 INLINE l_imatrix operator *(const l_rmatrix_slice &ms, const l_imatrix &m1)
02792 #if(CXSC_INDEX_CHECK)
02793 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02794 #else
02795 throw()
02796 #endif
02797 { return _msmlimult<l_rmatrix_slice,l_imatrix,l_imatrix>(ms,m1); }
02798 INLINE l_imatrix operator *(const l_imatrix_slice &ms, const l_rmatrix &m1)
02799 #if(CXSC_INDEX_CHECK)
02800 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02801 #else
02802 throw()
02803 #endif
02804 { return _msmlimult<l_imatrix_slice,l_rmatrix,l_imatrix>(ms,m1); }
02805 INLINE l_imatrix operator *(const l_rmatrix_slice &ms1, const l_imatrix_slice &ms2)
02806 #if(CXSC_INDEX_CHECK)
02807 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02808 #else
02809 throw()
02810 #endif
02811 { return _msmslimult<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
02812 INLINE l_imatrix operator *(const l_imatrix_slice &ms1, const l_rmatrix_slice &ms2)
02813 #if(CXSC_INDEX_CHECK)
02814 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02815 #else
02816 throw()
02817 #endif
02818 { return _msmslimult<l_imatrix_slice,l_rmatrix_slice,l_imatrix>(ms1,ms2); }
02819 INLINE l_imatrix &operator *=(l_imatrix &m1,const l_rmatrix &m2)
02820 #if(CXSC_INDEX_CHECK)
02821 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02822 #else
02823 throw()
02824 #endif
02825 { return _mmlimultassign<l_imatrix,l_rmatrix,l_interval>(m1,m2); }
02826 INLINE l_imatrix &operator *=(l_imatrix &m1,const l_rmatrix_slice &ms)
02827 #if(CXSC_INDEX_CHECK)
02828 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02829 #else
02830 throw()
02831 #endif
02832 { return _mmslimultassign<l_imatrix,l_rmatrix_slice,l_interval>(m1,ms); }
02833 INLINE l_imatrix operator |(const l_rmatrix &m1,const l_imatrix &m2)
02834 #if(CXSC_INDEX_CHECK)
02835 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02836 #else
02837 throw()
02838 #endif
02839 { return _mmconv<l_rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02840 INLINE l_imatrix operator |(const l_imatrix &m1,const l_rmatrix &m2)
02841 #if(CXSC_INDEX_CHECK)
02842 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02843 #else
02844 throw()
02845 #endif
02846 { return _mmconv<l_rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02847 INLINE l_imatrix operator |(const l_rmatrix &m,const l_imatrix_slice &ms)
02848 #if(CXSC_INDEX_CHECK)
02849 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02850 #else
02851 throw()
02852 #endif
02853 { return _mmsconv<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02854 INLINE l_imatrix operator |(const l_imatrix &m,const l_rmatrix_slice &ms)
02855 #if(CXSC_INDEX_CHECK)
02856 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02857 #else
02858 throw()
02859 #endif
02860 { return _mmsconv<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02861 INLINE l_imatrix operator |(const l_rmatrix_slice &ms,const l_imatrix &m)
02862 #if(CXSC_INDEX_CHECK)
02863 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02864 #else
02865 throw()
02866 #endif
02867 { return _mmsconv<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02868 INLINE l_imatrix operator |(const l_imatrix_slice &ms,const l_rmatrix &m)
02869 #if(CXSC_INDEX_CHECK)
02870 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02871 #else
02872 throw()
02873 #endif
02874 { return _mmsconv<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02875 INLINE l_imatrix operator |(const l_rmatrix_slice &m1,const l_imatrix_slice &m2)
02876 #if(CXSC_INDEX_CHECK)
02877 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02878 #else
02879 throw()
02880 #endif
02881 { return _msmsconv<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02882 INLINE l_imatrix operator |(const l_imatrix_slice &m1,const l_rmatrix_slice &m2)
02883 #if(CXSC_INDEX_CHECK)
02884 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02885 #else
02886 throw()
02887 #endif
02888 { return _msmsconv<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02889 INLINE l_imatrix &operator |=(l_imatrix &m1,const l_rmatrix &m2)
02890 #if(CXSC_INDEX_CHECK)
02891 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02892 #else
02893 throw()
02894 #endif
02895 { return _mmconvassign(m1,m2); }
02896 INLINE l_imatrix &operator |=(l_imatrix &m1,const l_rmatrix_slice &ms)
02897 #if(CXSC_INDEX_CHECK)
02898 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02899 #else
02900 throw()
02901 #endif
02902 { return _mmsconvassign(m1,ms); }
02903 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const l_rmatrix &m1)
02904 #if(CXSC_INDEX_CHECK)
02905 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02906 #else
02907 throw()
02908 #endif
02909 { return _msmconvassign(*this,m1); }
02910 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const l_rmatrix_slice &ms2)
02911 #if(CXSC_INDEX_CHECK)
02912 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02913 #else
02914 throw()
02915 #endif
02916 { return _msmsconvassign(*this,ms2); }
02917 INLINE l_imatrix operator &(const l_rmatrix &m1,const l_imatrix &m2)
02918 #if(CXSC_INDEX_CHECK)
02919 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02920 #else
02921 throw()
02922 #endif
02923 { return _mmsect<l_rmatrix,l_imatrix,l_imatrix>(m1,m2); }
02924 INLINE l_imatrix operator &(const l_imatrix &m1,const l_rmatrix &m2)
02925 #if(CXSC_INDEX_CHECK)
02926 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02927 #else
02928 throw()
02929 #endif
02930 { return _mmsect<l_rmatrix,l_imatrix,l_imatrix>(m2,m1); }
02931 INLINE l_imatrix operator &(const l_rmatrix &m,const l_imatrix_slice &ms)
02932 #if(CXSC_INDEX_CHECK)
02933 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02934 #else
02935 throw()
02936 #endif
02937 { return _mmssect<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02938 INLINE l_imatrix operator &(const l_imatrix &m,const l_rmatrix_slice &ms)
02939 #if(CXSC_INDEX_CHECK)
02940 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02941 #else
02942 throw()
02943 #endif
02944 { return _mmssect<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02945 INLINE l_imatrix operator &(const l_rmatrix_slice &ms,const l_imatrix &m)
02946 #if(CXSC_INDEX_CHECK)
02947 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02948 #else
02949 throw()
02950 #endif
02951 { return _mmssect<l_imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
02952 INLINE l_imatrix operator &(const l_imatrix_slice &ms,const l_rmatrix &m)
02953 #if(CXSC_INDEX_CHECK)
02954 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02955 #else
02956 throw()
02957 #endif
02958 { return _mmssect<l_rmatrix,l_imatrix_slice,l_imatrix>(m,ms); }
02959 INLINE l_imatrix operator &(const l_rmatrix_slice &m1,const l_imatrix_slice &m2)
02960 #if(CXSC_INDEX_CHECK)
02961 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02962 #else
02963 throw()
02964 #endif
02965 { return _msmssect<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
02966 INLINE l_imatrix operator &(const l_imatrix_slice &m1,const l_rmatrix_slice &m2)
02967 #if(CXSC_INDEX_CHECK)
02968 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02969 #else
02970 throw()
02971 #endif
02972 { return _msmssect<l_rmatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
02973 INLINE l_imatrix &operator &=(l_imatrix &m1,const l_rmatrix &m2)
02974 #if(CXSC_INDEX_CHECK)
02975 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02976 #else
02977 throw()
02978 #endif
02979 { return _mmsectassign(m1,m2); }
02980 INLINE l_imatrix &operator &=(l_imatrix &m1,const l_rmatrix_slice &ms)
02981 #if(CXSC_INDEX_CHECK)
02982 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02983 #else
02984 throw()
02985 #endif
02986 { return _mmssectassign(m1,ms); }
02987 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const l_rmatrix &m1)
02988 #if(CXSC_INDEX_CHECK)
02989 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02990 #else
02991 throw()
02992 #endif
02993 { return _msmsectassign(*this,m1); }
02994 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const l_rmatrix_slice &ms2)
02995 #if(CXSC_INDEX_CHECK)
02996 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
02997 #else
02998 throw()
02999 #endif
03000 { return _msmssectassign(*this,ms2); }
03001
03002 INLINE l_imatrix operator +(const imatrix &m1,const l_imatrix &m2)
03003 #if(CXSC_INDEX_CHECK)
03004 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03005 #else
03006 throw()
03007 #endif
03008 { return _mmplus<imatrix,l_imatrix,l_imatrix>(m1,m2); }
03009 INLINE l_imatrix operator +(const l_imatrix &m1,const imatrix &m2)
03010 #if(CXSC_INDEX_CHECK)
03011 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03012 #else
03013 throw()
03014 #endif
03015 { return _mmplus<imatrix,l_imatrix,l_imatrix>(m2,m1); }
03016 INLINE l_imatrix operator +(const imatrix &m,const l_imatrix_slice &ms)
03017 #if(CXSC_INDEX_CHECK)
03018 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03019 #else
03020 throw()
03021 #endif
03022 { return _mmsplus<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03023 INLINE l_imatrix operator +(const l_imatrix &m,const imatrix_slice &ms)
03024 #if(CXSC_INDEX_CHECK)
03025 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03026 #else
03027 throw()
03028 #endif
03029 { return _mmsplus<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03030 INLINE l_imatrix operator +(const imatrix_slice &ms,const l_imatrix &m)
03031 #if(CXSC_INDEX_CHECK)
03032 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03033 #else
03034 throw()
03035 #endif
03036 { return _mmsplus<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03037 INLINE l_imatrix operator +(const l_imatrix_slice &ms,const imatrix &m)
03038 #if(CXSC_INDEX_CHECK)
03039 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03040 #else
03041 throw()
03042 #endif
03043 { return _mmsplus<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03044 INLINE l_imatrix operator +(const imatrix_slice &m1,const l_imatrix_slice &m2)
03045 #if(CXSC_INDEX_CHECK)
03046 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03047 #else
03048 throw()
03049 #endif
03050 { return _msmsplus<imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
03051 INLINE l_imatrix operator +(const l_imatrix_slice &m1,const imatrix_slice &m2)
03052 #if(CXSC_INDEX_CHECK)
03053 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03054 #else
03055 throw()
03056 #endif
03057 { return _msmsplus<imatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
03058 INLINE l_imatrix &operator +=(l_imatrix &m1,const imatrix &m2)
03059 #if(CXSC_INDEX_CHECK)
03060 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03061 #else
03062 throw()
03063 #endif
03064 { return _mmplusassign(m1,m2); }
03065 INLINE l_imatrix &operator +=(l_imatrix &m1,const imatrix_slice &ms)
03066 #if(CXSC_INDEX_CHECK)
03067 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03068 #else
03069 throw()
03070 #endif
03071 { return _mmsplusassign(m1,ms); }
03072 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const imatrix &m1)
03073 #if(CXSC_INDEX_CHECK)
03074 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03075 #else
03076 throw()
03077 #endif
03078 { return _msmplusassign(*this,m1); }
03079 INLINE l_imatrix_slice &l_imatrix_slice::operator +=(const imatrix_slice &ms2)
03080 #if(CXSC_INDEX_CHECK)
03081 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03082 #else
03083 throw()
03084 #endif
03085 { return _msmsplusassign(*this,ms2); }
03086 INLINE l_imatrix operator -(const imatrix &m1,const l_imatrix &m2)
03087 #if(CXSC_INDEX_CHECK)
03088 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03089 #else
03090 throw()
03091 #endif
03092 { return _mmminus<imatrix,l_imatrix,l_imatrix>(m1,m2); }
03093 INLINE l_imatrix operator -(const l_imatrix &m1,const imatrix &m2)
03094 #if(CXSC_INDEX_CHECK)
03095 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03096 #else
03097 throw()
03098 #endif
03099 { return _mmminus<l_imatrix,imatrix,l_imatrix>(m1,m2); }
03100 INLINE l_imatrix operator -(const imatrix &m,const l_imatrix_slice &ms)
03101 #if(CXSC_INDEX_CHECK)
03102 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03103 #else
03104 throw()
03105 #endif
03106 { return _mmsminus<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03107 INLINE l_imatrix operator -(const l_imatrix &m,const imatrix_slice &ms)
03108 #if(CXSC_INDEX_CHECK)
03109 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03110 #else
03111 throw()
03112 #endif
03113 { return _mmsminus<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03114 INLINE l_imatrix operator -(const imatrix_slice &ms,const l_imatrix &m)
03115 #if(CXSC_INDEX_CHECK)
03116 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03117 #else
03118 throw()
03119 #endif
03120 { return _msmminus<imatrix_slice,l_imatrix,l_imatrix>(ms,m); }
03121 INLINE l_imatrix operator -(const l_imatrix_slice &ms,const imatrix &m)
03122 #if(CXSC_INDEX_CHECK)
03123 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03124 #else
03125 throw()
03126 #endif
03127 { return _msmminus<l_imatrix_slice,imatrix,l_imatrix>(ms,m); }
03128 INLINE l_imatrix operator -(const imatrix_slice &ms1,const l_imatrix_slice &ms2)
03129 #if(CXSC_INDEX_CHECK)
03130 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03131 #else
03132 throw()
03133 #endif
03134 { return _msmsminus<imatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
03135 INLINE l_imatrix operator -(const l_imatrix_slice &ms1,const imatrix_slice &ms2)
03136 #if(CXSC_INDEX_CHECK)
03137 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03138 #else
03139 throw()
03140 #endif
03141 { return _msmsminus<l_imatrix_slice,imatrix_slice,l_imatrix>(ms1,ms2); }
03142 INLINE l_imatrix &operator -=(l_imatrix &m1,const imatrix &m2)
03143 #if(CXSC_INDEX_CHECK)
03144 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03145 #else
03146 throw()
03147 #endif
03148 { return _mmminusassign(m1,m2); }
03149 INLINE l_imatrix &operator -=(l_imatrix &m1,const imatrix_slice &ms)
03150 #if(CXSC_INDEX_CHECK)
03151 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03152 #else
03153 throw()
03154 #endif
03155 { return _mmsminusassign(m1,ms); }
03156 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const imatrix &m1)
03157 #if(CXSC_INDEX_CHECK)
03158 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03159 #else
03160 throw()
03161 #endif
03162 { return _msmminusassign(*this,m1); }
03163 INLINE l_imatrix_slice &l_imatrix_slice::operator -=(const imatrix_slice &ms2)
03164 #if(CXSC_INDEX_CHECK)
03165 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03166 #else
03167 throw()
03168 #endif
03169 { return _msmsminusassign(*this,ms2); }
03170 INLINE l_imatrix operator *(const imatrix &m1, const l_imatrix &m2)
03171 #if(CXSC_INDEX_CHECK)
03172 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03173 #else
03174 throw()
03175 #endif
03176 { return _mmlimult<imatrix,l_imatrix,l_imatrix>(m1,m2); }
03177 INLINE l_imatrix operator *(const l_imatrix &m1, const imatrix &m2)
03178 #if(CXSC_INDEX_CHECK)
03179 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03180 #else
03181 throw()
03182 #endif
03183 { return _mmlimult<l_imatrix,imatrix,l_imatrix>(m1,m2); }
03184 INLINE l_imatrix operator *(const imatrix &m1, const l_imatrix_slice &ms)
03185 #if(CXSC_INDEX_CHECK)
03186 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03187 #else
03188 throw()
03189 #endif
03190 { return _mmslimult<imatrix,l_imatrix_slice,l_imatrix>(m1,ms); }
03191 INLINE l_imatrix operator *(const l_imatrix &m1, const imatrix_slice &ms)
03192 #if(CXSC_INDEX_CHECK)
03193 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03194 #else
03195 throw()
03196 #endif
03197 { return _mmslimult<l_imatrix,imatrix_slice,l_imatrix>(m1,ms); }
03198 INLINE l_imatrix operator *(const imatrix_slice &ms, const l_imatrix &m1)
03199 #if(CXSC_INDEX_CHECK)
03200 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03201 #else
03202 throw()
03203 #endif
03204 { return _msmlimult<imatrix_slice,l_imatrix,l_imatrix>(ms,m1); }
03205 INLINE l_imatrix operator *(const l_imatrix_slice &ms, const imatrix &m1)
03206 #if(CXSC_INDEX_CHECK)
03207 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03208 #else
03209 throw()
03210 #endif
03211 { return _msmlimult<l_imatrix_slice,imatrix,l_imatrix>(ms,m1); }
03212 INLINE l_imatrix operator *(const imatrix_slice &ms1, const l_imatrix_slice &ms2)
03213 #if(CXSC_INDEX_CHECK)
03214 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03215 #else
03216 throw()
03217 #endif
03218 { return _msmslimult<imatrix_slice,l_imatrix_slice,l_imatrix>(ms1,ms2); }
03219 INLINE l_imatrix operator *(const l_imatrix_slice &ms1, const imatrix_slice &ms2)
03220 #if(CXSC_INDEX_CHECK)
03221 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03222 #else
03223 throw()
03224 #endif
03225 { return _msmslimult<l_imatrix_slice,imatrix_slice,l_imatrix>(ms1,ms2); }
03226 INLINE l_imatrix &operator *=(l_imatrix &m1,const imatrix &m2)
03227 #if(CXSC_INDEX_CHECK)
03228 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03229 #else
03230 throw()
03231 #endif
03232 { return _mmlimultassign<l_imatrix,imatrix,l_interval>(m1,m2); }
03233 INLINE l_imatrix &operator *=(l_imatrix &m1,const imatrix_slice &ms)
03234 #if(CXSC_INDEX_CHECK)
03235 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03236 #else
03237 throw()
03238 #endif
03239 { return _mmslimultassign<l_imatrix,imatrix_slice,l_interval>(m1,ms); }
03240 INLINE l_imatrix operator |(const imatrix &m1,const l_imatrix &m2)
03241 #if(CXSC_INDEX_CHECK)
03242 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03243 #else
03244 throw()
03245 #endif
03246 { return _mmconv<imatrix,l_imatrix,l_imatrix>(m1,m2); }
03247 INLINE l_imatrix operator |(const l_imatrix &m1,const imatrix &m2)
03248 #if(CXSC_INDEX_CHECK)
03249 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03250 #else
03251 throw()
03252 #endif
03253 { return _mmconv<imatrix,l_imatrix,l_imatrix>(m2,m1); }
03254 INLINE l_imatrix operator |(const imatrix &m,const l_imatrix_slice &ms)
03255 #if(CXSC_INDEX_CHECK)
03256 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03257 #else
03258 throw()
03259 #endif
03260 { return _mmsconv<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03261 INLINE l_imatrix operator |(const l_imatrix &m,const imatrix_slice &ms)
03262 #if(CXSC_INDEX_CHECK)
03263 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03264 #else
03265 throw()
03266 #endif
03267 { return _mmsconv<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03268 INLINE l_imatrix operator |(const imatrix_slice &ms,const l_imatrix &m)
03269 #if(CXSC_INDEX_CHECK)
03270 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03271 #else
03272 throw()
03273 #endif
03274 { return _mmsconv<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03275 INLINE l_imatrix operator |(const l_imatrix_slice &ms,const imatrix &m)
03276 #if(CXSC_INDEX_CHECK)
03277 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03278 #else
03279 throw()
03280 #endif
03281 { return _mmsconv<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03282 INLINE l_imatrix operator |(const imatrix_slice &m1,const l_imatrix_slice &m2)
03283 #if(CXSC_INDEX_CHECK)
03284 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03285 #else
03286 throw()
03287 #endif
03288 { return _msmsconv<imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
03289 INLINE l_imatrix operator |(const l_imatrix_slice &m1,const imatrix_slice &m2)
03290 #if(CXSC_INDEX_CHECK)
03291 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03292 #else
03293 throw()
03294 #endif
03295 { return _msmsconv<imatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
03296 INLINE l_imatrix &operator |=(l_imatrix &m1,const imatrix &m2)
03297 #if(CXSC_INDEX_CHECK)
03298 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03299 #else
03300 throw()
03301 #endif
03302 { return _mmconvassign(m1,m2); }
03303 INLINE l_imatrix &operator |=(l_imatrix &m1,const imatrix_slice &ms)
03304 #if(CXSC_INDEX_CHECK)
03305 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03306 #else
03307 throw()
03308 #endif
03309 { return _mmsconvassign(m1,ms); }
03310 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const imatrix &m1)
03311 #if(CXSC_INDEX_CHECK)
03312 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03313 #else
03314 throw()
03315 #endif
03316 { return _msmconvassign(*this,m1); }
03317 INLINE l_imatrix_slice &l_imatrix_slice::operator |=(const imatrix_slice &ms2)
03318 #if(CXSC_INDEX_CHECK)
03319 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03320 #else
03321 throw()
03322 #endif
03323 { return _msmsconvassign(*this,ms2); }
03324 INLINE l_imatrix operator &(const imatrix &m1,const l_imatrix &m2)
03325 #if(CXSC_INDEX_CHECK)
03326 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03327 #else
03328 throw()
03329 #endif
03330 { return _mmsect<imatrix,l_imatrix,l_imatrix>(m1,m2); }
03331 INLINE l_imatrix operator &(const l_imatrix &m1,const imatrix &m2)
03332 #if(CXSC_INDEX_CHECK)
03333 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03334 #else
03335 throw()
03336 #endif
03337 { return _mmsect<imatrix,l_imatrix,l_imatrix>(m2,m1); }
03338 INLINE l_imatrix operator &(const imatrix &m,const l_imatrix_slice &ms)
03339 #if(CXSC_INDEX_CHECK)
03340 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03341 #else
03342 throw()
03343 #endif
03344 { return _mmssect<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03345 INLINE l_imatrix operator &(const l_imatrix &m,const imatrix_slice &ms)
03346 #if(CXSC_INDEX_CHECK)
03347 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03348 #else
03349 throw()
03350 #endif
03351 { return _mmssect<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03352 INLINE l_imatrix operator &(const imatrix_slice &ms,const l_imatrix &m)
03353 #if(CXSC_INDEX_CHECK)
03354 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03355 #else
03356 throw()
03357 #endif
03358 { return _mmssect<l_imatrix,imatrix_slice,l_imatrix>(m,ms); }
03359 INLINE l_imatrix operator &(const l_imatrix_slice &ms,const imatrix &m)
03360 #if(CXSC_INDEX_CHECK)
03361 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03362 #else
03363 throw()
03364 #endif
03365 { return _mmssect<imatrix,l_imatrix_slice,l_imatrix>(m,ms); }
03366 INLINE l_imatrix operator &(const imatrix_slice &m1,const l_imatrix_slice &m2)
03367 #if(CXSC_INDEX_CHECK)
03368 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03369 #else
03370 throw()
03371 #endif
03372 { return _msmssect<imatrix_slice,l_imatrix_slice,l_imatrix>(m1,m2); }
03373 INLINE l_imatrix operator &(const l_imatrix_slice &m1,const imatrix_slice &m2)
03374 #if(CXSC_INDEX_CHECK)
03375 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03376 #else
03377 throw()
03378 #endif
03379 { return _msmssect<imatrix_slice,l_imatrix_slice,l_imatrix>(m2,m1); }
03380 INLINE l_imatrix &operator &=(l_imatrix &m1,const imatrix &m2)
03381 #if(CXSC_INDEX_CHECK)
03382 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03383 #else
03384 throw()
03385 #endif
03386 { return _mmsectassign(m1,m2); }
03387 INLINE l_imatrix &operator &=(l_imatrix &m1,const imatrix_slice &ms)
03388 #if(CXSC_INDEX_CHECK)
03389 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03390 #else
03391 throw()
03392 #endif
03393 { return _mmssectassign(m1,ms); }
03394 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const imatrix &m1)
03395 #if(CXSC_INDEX_CHECK)
03396 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03397 #else
03398 throw()
03399 #endif
03400 { return _msmsectassign(*this,m1); }
03401 INLINE l_imatrix_slice &l_imatrix_slice::operator &=(const imatrix_slice &ms2)
03402 #if(CXSC_INDEX_CHECK)
03403 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03404 #else
03405 throw()
03406 #endif
03407 { return _msmssectassign(*this,ms2); }
03408
03409 INLINE l_imatrix operator +(const l_rmatrix &m1,const imatrix &m2)
03410 #if(CXSC_INDEX_CHECK)
03411 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03412 #else
03413 throw()
03414 #endif
03415 { return _mmplus<l_rmatrix,imatrix,l_imatrix>(m1,m2); }
03416 INLINE l_imatrix operator +(const imatrix &m1,const l_rmatrix &m2)
03417 #if(CXSC_INDEX_CHECK)
03418 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03419 #else
03420 throw()
03421 #endif
03422 { return _mmplus<l_rmatrix,imatrix,l_imatrix>(m2,m1); }
03423 INLINE l_imatrix operator +(const l_rmatrix &m,const imatrix_slice &ms)
03424 #if(CXSC_INDEX_CHECK)
03425 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03426 #else
03427 throw()
03428 #endif
03429 { return _mmsplus<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03430 INLINE l_imatrix operator +(const imatrix &m,const l_rmatrix_slice &ms)
03431 #if(CXSC_INDEX_CHECK)
03432 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03433 #else
03434 throw()
03435 #endif
03436 { return _mmsplus<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03437 INLINE l_imatrix operator +(const l_rmatrix_slice &ms,const imatrix &m)
03438 #if(CXSC_INDEX_CHECK)
03439 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03440 #else
03441 throw()
03442 #endif
03443 { return _mmsplus<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03444 INLINE l_imatrix operator +(const imatrix_slice &ms,const l_rmatrix &m)
03445 #if(CXSC_INDEX_CHECK)
03446 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03447 #else
03448 throw()
03449 #endif
03450 { return _mmsplus<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03451 INLINE l_imatrix operator +(const l_rmatrix_slice &m1,const imatrix_slice &m2)
03452 #if(CXSC_INDEX_CHECK)
03453 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03454 #else
03455 throw()
03456 #endif
03457 { return _msmsplus<l_rmatrix_slice,imatrix_slice,l_imatrix>(m1,m2); }
03458 INLINE l_imatrix operator +(const imatrix_slice &m1,const l_rmatrix_slice &m2)
03459 #if(CXSC_INDEX_CHECK)
03460 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03461 #else
03462 throw()
03463 #endif
03464 { return _msmsplus<l_rmatrix_slice,imatrix_slice,l_imatrix>(m2,m1); }
03465 INLINE l_imatrix operator -(const l_rmatrix &m1,const imatrix &m2)
03466 #if(CXSC_INDEX_CHECK)
03467 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03468 #else
03469 throw()
03470 #endif
03471 { return _mmminus<l_rmatrix,imatrix,l_imatrix>(m1,m2); }
03472 INLINE l_imatrix operator -(const imatrix &m1,const l_rmatrix &m2)
03473 #if(CXSC_INDEX_CHECK)
03474 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03475 #else
03476 throw()
03477 #endif
03478 { return _mmminus<imatrix,l_rmatrix,l_imatrix>(m1,m2); }
03479 INLINE l_imatrix operator -(const l_rmatrix &m,const imatrix_slice &ms)
03480 #if(CXSC_INDEX_CHECK)
03481 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03482 #else
03483 throw()
03484 #endif
03485 { return _mmsminus<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03486 INLINE l_imatrix operator -(const imatrix &m,const l_rmatrix_slice &ms)
03487 #if(CXSC_INDEX_CHECK)
03488 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03489 #else
03490 throw()
03491 #endif
03492 { return _mmsminus<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03493 INLINE l_imatrix operator -(const l_rmatrix_slice &ms,const imatrix &m)
03494 #if(CXSC_INDEX_CHECK)
03495 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03496 #else
03497 throw()
03498 #endif
03499 { return _msmminus<l_rmatrix_slice,imatrix,l_imatrix>(ms,m); }
03500 INLINE l_imatrix operator -(const imatrix_slice &ms,const l_rmatrix &m)
03501 #if(CXSC_INDEX_CHECK)
03502 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03503 #else
03504 throw()
03505 #endif
03506 { return _msmminus<imatrix_slice,l_rmatrix,l_imatrix>(ms,m); }
03507 INLINE l_imatrix operator -(const l_rmatrix_slice &ms1,const imatrix_slice &ms2)
03508 #if(CXSC_INDEX_CHECK)
03509 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03510 #else
03511 throw()
03512 #endif
03513 { return _msmsminus<l_rmatrix_slice,imatrix_slice,l_imatrix>(ms1,ms2); }
03514 INLINE l_imatrix operator -(const imatrix_slice &ms1,const l_rmatrix_slice &ms2)
03515 #if(CXSC_INDEX_CHECK)
03516 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03517 #else
03518 throw()
03519 #endif
03520 { return _msmsminus<imatrix_slice,l_rmatrix_slice,l_imatrix>(ms1,ms2); }
03521 INLINE l_imatrix operator *(const l_rmatrix &m1, const imatrix &m2)
03522 #if(CXSC_INDEX_CHECK)
03523 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03524 #else
03525 throw()
03526 #endif
03527 { return _mmlimult<l_rmatrix,imatrix,l_imatrix>(m1,m2); }
03528 INLINE l_imatrix operator *(const imatrix &m1, const l_rmatrix &m2)
03529 #if(CXSC_INDEX_CHECK)
03530 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03531 #else
03532 throw()
03533 #endif
03534 { return _mmlimult<imatrix,l_rmatrix,l_imatrix>(m1,m2); }
03535 INLINE l_imatrix operator *(const l_rmatrix &m1, const imatrix_slice &ms)
03536 #if(CXSC_INDEX_CHECK)
03537 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03538 #else
03539 throw()
03540 #endif
03541 { return _mmslimult<l_rmatrix,imatrix_slice,l_imatrix>(m1,ms); }
03542 INLINE l_imatrix operator *(const imatrix &m1, const l_rmatrix_slice &ms)
03543 #if(CXSC_INDEX_CHECK)
03544 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03545 #else
03546 throw()
03547 #endif
03548 { return _mmslimult<imatrix,l_rmatrix_slice,l_imatrix>(m1,ms); }
03549 INLINE l_imatrix operator *(const l_rmatrix_slice &ms, const imatrix &m1)
03550 #if(CXSC_INDEX_CHECK)
03551 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03552 #else
03553 throw()
03554 #endif
03555 { return _msmlimult<l_rmatrix_slice,imatrix,l_imatrix>(ms,m1); }
03556 INLINE l_imatrix operator *(const imatrix_slice &ms, const l_rmatrix &m1)
03557 #if(CXSC_INDEX_CHECK)
03558 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03559 #else
03560 throw()
03561 #endif
03562 { return _msmlimult<imatrix_slice,l_rmatrix,l_imatrix>(ms,m1); }
03563 INLINE l_imatrix operator *(const l_rmatrix_slice &ms1, const imatrix_slice &ms2)
03564 #if(CXSC_INDEX_CHECK)
03565 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03566 #else
03567 throw()
03568 #endif
03569 { return _msmslimult<l_rmatrix_slice,imatrix_slice,l_imatrix>(ms1,ms2); }
03570 INLINE l_imatrix operator *(const imatrix_slice &ms1, const l_rmatrix_slice &ms2)
03571 #if(CXSC_INDEX_CHECK)
03572 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03573 #else
03574 throw()
03575 #endif
03576 { return _msmslimult<imatrix_slice,l_rmatrix_slice,l_imatrix>(ms1,ms2); }
03577 INLINE l_imatrix operator |(const l_rmatrix &m1,const imatrix &m2)
03578 #if(CXSC_INDEX_CHECK)
03579 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03580 #else
03581 throw()
03582 #endif
03583 { return _mmconv<l_rmatrix,imatrix,l_imatrix>(m1,m2); }
03584 INLINE l_imatrix operator |(const imatrix &m1,const l_rmatrix &m2)
03585 #if(CXSC_INDEX_CHECK)
03586 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03587 #else
03588 throw()
03589 #endif
03590 { return _mmconv<l_rmatrix,imatrix,l_imatrix>(m2,m1); }
03591 INLINE l_imatrix operator |(const l_rmatrix &m,const imatrix_slice &ms)
03592 #if(CXSC_INDEX_CHECK)
03593 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03594 #else
03595 throw()
03596 #endif
03597 { return _mmsconv<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03598 INLINE l_imatrix operator |(const imatrix &m,const l_rmatrix_slice &ms)
03599 #if(CXSC_INDEX_CHECK)
03600 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03601 #else
03602 throw()
03603 #endif
03604 { return _mmsconv<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03605 INLINE l_imatrix operator |(const l_rmatrix_slice &ms,const imatrix &m)
03606 #if(CXSC_INDEX_CHECK)
03607 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03608 #else
03609 throw()
03610 #endif
03611 { return _mmsconv<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03612 INLINE l_imatrix operator |(const imatrix_slice &ms,const l_rmatrix &m)
03613 #if(CXSC_INDEX_CHECK)
03614 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03615 #else
03616 throw()
03617 #endif
03618 { return _mmsconv<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03619 INLINE l_imatrix operator |(const l_rmatrix_slice &m1,const imatrix_slice &m2)
03620 #if(CXSC_INDEX_CHECK)
03621 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03622 #else
03623 throw()
03624 #endif
03625 { return _msmsconv<l_rmatrix_slice,imatrix_slice,l_imatrix>(m1,m2); }
03626 INLINE l_imatrix operator |(const imatrix_slice &m1,const l_rmatrix_slice &m2)
03627 #if(CXSC_INDEX_CHECK)
03628 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03629 #else
03630 throw()
03631 #endif
03632 { return _msmsconv<l_rmatrix_slice,imatrix_slice,l_imatrix>(m2,m1); }
03633 INLINE l_imatrix operator &(const l_rmatrix &m1,const imatrix &m2)
03634 #if(CXSC_INDEX_CHECK)
03635 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03636 #else
03637 throw()
03638 #endif
03639 { return _mmsect<l_rmatrix,imatrix,l_imatrix>(m1,m2); }
03640 INLINE l_imatrix operator &(const imatrix &m1,const l_rmatrix &m2)
03641 #if(CXSC_INDEX_CHECK)
03642 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03643 #else
03644 throw()
03645 #endif
03646 { return _mmsect<l_rmatrix,imatrix,l_imatrix>(m2,m1); }
03647 INLINE l_imatrix operator &(const l_rmatrix &m,const imatrix_slice &ms)
03648 #if(CXSC_INDEX_CHECK)
03649 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03650 #else
03651 throw()
03652 #endif
03653 { return _mmssect<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03654 INLINE l_imatrix operator &(const imatrix &m,const l_rmatrix_slice &ms)
03655 #if(CXSC_INDEX_CHECK)
03656 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03657 #else
03658 throw()
03659 #endif
03660 { return _mmssect<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03661 INLINE l_imatrix operator &(const l_rmatrix_slice &ms,const imatrix &m)
03662 #if(CXSC_INDEX_CHECK)
03663 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03664 #else
03665 throw()
03666 #endif
03667 { return _mmssect<imatrix,l_rmatrix_slice,l_imatrix>(m,ms); }
03668 INLINE l_imatrix operator &(const imatrix_slice &ms,const l_rmatrix &m)
03669 #if(CXSC_INDEX_CHECK)
03670 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03671 #else
03672 throw()
03673 #endif
03674 { return _mmssect<l_rmatrix,imatrix_slice,l_imatrix>(m,ms); }
03675 INLINE l_imatrix operator &(const l_rmatrix_slice &m1,const imatrix_slice &m2)
03676 #if(CXSC_INDEX_CHECK)
03677 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03678 #else
03679 throw()
03680 #endif
03681 { return _msmssect<l_rmatrix_slice,imatrix_slice,l_imatrix>(m1,m2); }
03682 INLINE l_imatrix operator &(const imatrix_slice &m1,const l_rmatrix_slice &m2)
03683 #if(CXSC_INDEX_CHECK)
03684 throw(ERROR_LIMATRIX_OP_WITH_WRONG_DIM)
03685 #else
03686 throw()
03687 #endif
03688 { return _msmssect<l_rmatrix_slice,imatrix_slice,l_imatrix>(m2,m1); }
03689
03690
03691 INLINE l_imatrix operator |(const rmatrix &rv1, const l_rmatrix &rv2)
03692 #if(CXSC_INDEX_CHECK)
03693 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03694 #else
03695 throw()
03696 #endif
03697 { return _mmconv<rmatrix,l_rmatrix,l_imatrix>(rv1,rv2); }
03698 INLINE l_imatrix operator |(const l_rmatrix &rv1, const rmatrix &rv2)
03699 #if(CXSC_INDEX_CHECK)
03700 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03701 #else
03702 throw()
03703 #endif
03704 { return _mmconv<rmatrix,l_rmatrix,l_imatrix>(rv2,rv1); }
03705 INLINE l_imatrix operator |(const l_rmatrix &rv, const rmatrix_slice &sl)
03706 #if(CXSC_INDEX_CHECK)
03707 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03708 #else
03709 throw()
03710 #endif
03711 { return _mmsconv<l_rmatrix,rmatrix_slice,l_imatrix>(rv,sl); }
03712 INLINE l_imatrix operator |(const rmatrix_slice &sl,const l_rmatrix &rv)
03713 #if(CXSC_INDEX_CHECK)
03714 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03715 #else
03716 throw()
03717 #endif
03718 { return _mmsconv<l_rmatrix,rmatrix_slice,l_imatrix>(rv,sl); }
03719 INLINE l_imatrix operator |(const l_rmatrix_slice &sl, const rmatrix &rv)
03720 #if(CXSC_INDEX_CHECK)
03721 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03722 #else
03723 throw()
03724 #endif
03725 { return _mmsconv<rmatrix,l_rmatrix_slice,l_imatrix>(rv,sl); }
03726 INLINE l_imatrix operator |(const rmatrix &rv,const l_rmatrix_slice &sl)
03727 #if(CXSC_INDEX_CHECK)
03728 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03729 #else
03730 throw()
03731 #endif
03732 { return _mmsconv<rmatrix,l_rmatrix_slice,l_imatrix>(rv,sl); }
03733 INLINE l_imatrix operator |(const l_rmatrix_slice &sl1, const rmatrix_slice &sl2)
03734 #if(CXSC_INDEX_CHECK)
03735 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03736 #else
03737 throw()
03738 #endif
03739 { return _msmsconv<rmatrix_slice,l_rmatrix_slice,l_imatrix>(sl2,sl1); }
03740 INLINE l_imatrix operator |(const rmatrix_slice &sl1, const l_rmatrix_slice &sl2)
03741 #if(CXSC_INDEX_CHECK)
03742 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03743 #else
03744 throw()
03745 #endif
03746 { return _msmsconv<rmatrix_slice,l_rmatrix_slice,l_imatrix>(sl1,sl2); }
03747
03748
03749 INLINE l_imatrix operator |(const l_rmatrix &rv1, const l_rmatrix &rv2)
03750 #if(CXSC_INDEX_CHECK)
03751 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03752 #else
03753 throw()
03754 #endif
03755 { return _mmconv<l_rmatrix,l_rmatrix,l_imatrix>(rv1,rv2); }
03756 INLINE l_imatrix operator |(const l_rmatrix &rv, const l_rmatrix_slice &sl)
03757 #if(CXSC_INDEX_CHECK)
03758 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03759 #else
03760 throw()
03761 #endif
03762 { return _mmsconv<l_rmatrix,l_rmatrix_slice,l_imatrix>(rv,sl); }
03763 INLINE l_imatrix operator |(const l_rmatrix_slice &sl,const l_rmatrix &rv)
03764 #if(CXSC_INDEX_CHECK)
03765 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03766 #else
03767 throw()
03768 #endif
03769 { return _mmsconv<l_rmatrix,l_rmatrix_slice,l_imatrix>(rv,sl); }
03770 INLINE l_imatrix operator |(const l_rmatrix_slice &sl1, const l_rmatrix_slice &sl2)
03771 #if(CXSC_INDEX_CHECK)
03772 throw(ERROR__OP_WITH_WRONG_DIM<l_imatrix>)
03773 #else
03774 throw()
03775 #endif
03776 { return _msmsconv<l_rmatrix_slice,l_rmatrix_slice,l_imatrix>(sl1,sl2); }
03777
03778 INLINE bool operator ==(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmeq(m1,m2); }
03779 INLINE bool operator !=(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmneq(m1,m2); }
03780 INLINE bool operator <(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmless(m1,m2); }
03781 INLINE bool operator <=(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmleq(m1,m2); }
03782 INLINE bool operator >(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmless(m2,m1); }
03783 INLINE bool operator >=(const l_imatrix &m1,const l_imatrix &m2) throw() { return _mmleq(m2,m1); }
03784 INLINE bool operator ==(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _mmseq(m1,ms); }
03785 INLINE bool operator !=(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _mmsneq(m1,ms); }
03786 INLINE bool operator <(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _mmsless(m1,ms); }
03787 INLINE bool operator <=(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _mmsleq(m1,ms); }
03788 INLINE bool operator >(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _msmless(ms,m1); }
03789 INLINE bool operator >=(const l_imatrix &m1,const l_imatrix_slice &ms) throw() { return _msmleq(ms,m1); }
03790 INLINE bool operator ==(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmseq(m1,m2); }
03791 INLINE bool operator !=(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmsneq(m1,m2); }
03792 INLINE bool operator <(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmsless(m1,m2); }
03793 INLINE bool operator <=(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmsleq(m1,m2); }
03794 INLINE bool operator >(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmsless(m2,m1); }
03795 INLINE bool operator >=(const l_imatrix_slice &m1,const l_imatrix_slice &m2) throw() { return _msmsleq(m2,m1); }
03796 INLINE bool operator !(const l_imatrix &ms) throw() { return _mnot(ms); }
03797 INLINE bool operator !(const l_imatrix_slice &ms) throw() { return _msnot(ms); }
03798 INLINE std::ostream &operator <<(std::ostream &s,const l_imatrix &r) throw() { return _mout(s,r); }
03799 INLINE std::ostream &operator <<(std::ostream &s,const l_imatrix_slice &r) throw() { return _msout(s,r); }
03800 INLINE std::istream &operator >>(std::istream &s,l_imatrix &r) throw() { return _min(s,r); }
03801 INLINE std::istream &operator >>(std::istream &s,l_imatrix_slice &r) throw() { return _msin(s,r); }
03802
03803 }
03804
03805 #endif
03806