C-XSC - A C++ Class Library for Extended Scientific Computing
2.5.4
|
00001 /* 00002 ** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4) 00003 ** 00004 ** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik, 00005 ** Universitaet Karlsruhe, Germany 00006 ** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie 00007 ** Universitaet Wuppertal, Germany 00008 ** 00009 ** This library is free software; you can redistribute it and/or 00010 ** modify it under the terms of the GNU Library General Public 00011 ** License as published by the Free Software Foundation; either 00012 ** version 2 of the License, or (at your option) any later version. 00013 ** 00014 ** This library is distributed in the hope that it will be useful, 00015 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 ** Library General Public License for more details. 00018 ** 00019 ** You should have received a copy of the GNU Library General Public 00020 ** License along with this library; if not, write to the Free 00021 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 */ 00023 00024 /* CVS $Id: l_imatrix.inl,v 1.20 2014/01/30 17:23:46 cxsc Exp $ */ 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 // real 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 // l_real 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 // interval 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 // matrix x matrix 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 ) // Length of the rows of a l_interval matrix 01189 { return Ub(A,2)-Lb(A,2)+1; } //------------------------------------------ 01190 01191 INLINE int ColLen ( const l_imatrix& A ) // Length of the columns of a l_interval matrix 01192 { return Ub(A,1)-Lb(A,1)+1; } //--------------------------------------------- 01193 01194 INLINE int RowLen ( const l_imatrix_slice& A ) // Length of the rows of a l_interval matrix 01195 { return Ub(A,2)-Lb(A,2)+1; } //------------------------------------------ 01196 01197 INLINE int ColLen ( const l_imatrix_slice& A ) // Length of the columns of a l_interval matrix 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 // INLINE l_interval l_interval::_interval(const l_imatrix &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ) { _smconstr(*this,m); return *this; } 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 // INLINE l_interval::l_interval(const rmatrix &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ) { _smconstr(*this,m); } 01631 // INLINE l_interval l_interval::_interval(const l_imatrix &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ) { _smconstr(*this,m); return *this; } 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 //------------- real x l_real ------------------------ 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 //------------- l_real x l_real ------------------------ 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 } // namespace cxsc 03804 03805 #endif 03806