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: cimatrix.hpp,v 1.41 2014/01/30 17:23:43 cxsc Exp $ */ 00025 00026 #ifndef _CXSC_CIMATRIX_HPP_INCLUDED 00027 #define _CXSC_CIMATRIX_HPP_INCLUDED 00028 00029 #include "xscclass.hpp" 00030 #include "cidot.hpp" 00031 #include "civector.hpp" 00032 #include "except.hpp" 00033 #include "matrix.hpp" 00034 #include "imatrix.hpp" 00035 #include "cmatrix.hpp" 00036 00037 00038 namespace cxsc { 00039 00040 class cimatrix; // forward declaration 00041 class cimatrix_slice; // forward declaration 00042 class srmatrix; 00043 class srmatrix_slice; 00044 class srmatrix_subv; 00045 class simatrix; 00046 class simatrix_slice; 00047 class simatrix_subv; 00048 class scmatrix; 00049 class scmatrix_slice; 00050 class scmatrix_subv; 00051 class scimatrix; 00052 class scimatrix_slice; 00053 class scimatrix_subv; 00054 00055 00056 00057 // --------------------------------------------------------------------------- 00058 // ---- ---- 00059 // ---- class cimatrix_subv (declaration) ---- 00060 // ---- ---- 00061 // --------------------------------------------------------------------------- 00062 00064 00067 class cimatrix_subv 00068 { 00069 friend class civector; 00070 friend class cimatrix; 00071 friend class cimatrix_slice; 00072 00073 private: 00074 cinterval *dat; 00075 int lb,ub; 00076 int size,start,offset; // start=first element index 0..n-1 00077 00078 public: 00080 friend INLINE cimatrix_subv Row(cimatrix &m,const int &i) 00081 #if(CXSC_INDEX_CHECK) 00082 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00083 #else 00084 throw(); 00085 #endif 00086 00088 friend INLINE cimatrix_subv Col(cimatrix &m,const int &i) 00089 #if(CXSC_INDEX_CHECK) 00090 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00091 #else 00092 throw(); 00093 #endif 00094 00095 friend INLINE cimatrix_subv Row(const cimatrix &m,const int &i) 00096 #if(CXSC_INDEX_CHECK) 00097 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00098 #else 00099 throw(); 00100 #endif 00101 00103 friend INLINE cimatrix_subv Col(const cimatrix &m,const int &i) 00104 #if(CXSC_INDEX_CHECK) 00105 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00106 #else 00107 throw(); 00108 #endif 00109 00110 00111 #ifdef _CXSC_FRIEND_TPL 00112 //----------------- Templates --------------------------------------- 00113 template <class MV1,class MV2> friend MV1 &_mvmvassign(MV1 &v,const MV2 &rv) 00114 #if(CXSC_INDEX_CHECK) 00115 throw(ERROR__OP_WITH_WRONG_DIM<MV1>); 00116 #else 00117 throw(); 00118 #endif 00119 template <class MV,class S> friend MV &_mvsassign(MV &v,const S &r) throw(); 00120 template <class MV,class V> friend MV &_mvvassign(MV &v,const V &rv) 00121 #if(CXSC_INDEX_CHECK) 00122 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00123 #else 00124 throw(); 00125 #endif 00126 template <class V,class MV2,class S> friend V &_vmvassign(V &v,const MV2 &rv) throw(); 00127 template <class MV,class V> friend MV &_mvvsetinf(MV &v,const V &rv) 00128 #if(CXSC_INDEX_CHECK) 00129 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00130 #else 00131 throw(); 00132 #endif 00133 template <class MV,class V> friend MV &_mvvsetsup(MV &v,const V &rv) 00134 #if(CXSC_INDEX_CHECK) 00135 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00136 #else 00137 throw(); 00138 #endif 00139 template <class MV,class V> friend MV &_mvvusetinf(MV &v,const V &rv) 00140 #if(CXSC_INDEX_CHECK) 00141 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00142 #else 00143 throw(); 00144 #endif 00145 template <class MV,class V> friend MV &_mvvusetsup(MV &v,const V &rv) 00146 #if(CXSC_INDEX_CHECK) 00147 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00148 #else 00149 throw(); 00150 #endif 00151 template <class MV,class V> friend MV &_mvvsetre(MV &v,const V &rv) 00152 #if(CXSC_INDEX_CHECK) 00153 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00154 #else 00155 throw(); 00156 #endif 00157 template <class MV,class V> friend MV &_mvvsetim(MV &v,const V &rv) 00158 #if(CXSC_INDEX_CHECK) 00159 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00160 #else 00161 throw(); 00162 #endif 00163 template <class MV,class V> friend V _mvabs(const MV &mv) throw(); 00164 template <class MV,class V> friend V _mvim(const MV &mv) throw(); 00165 template <class MV,class V> friend V _mvre(const MV &mv) throw(); 00166 template <class MV,class V> friend V _mvdiam(const MV &mv) throw(); 00167 template <class MV,class V> friend V _mvmid(const MV &mv) throw(); 00168 template <class MV,class V> friend V _mvinf(const MV &mv) throw(); 00169 template <class MV,class V> friend V _mvsup(const MV &mv) throw(); 00170 00171 template <class MV,class S> friend MV &_mvssetinf(MV &mv, const S &s) throw(); 00172 template <class MV,class S> friend MV &_mvssetsup(MV &mv, const S &s) throw(); 00173 template <class MV,class S> friend MV &_mvsusetinf(MV &mv, const S &s) throw(); 00174 template <class MV,class S> friend MV &_mvsusetsup(MV &mv, const S &s) throw(); 00175 template <class MV,class S> friend MV &_mvssetim(MV &mv, const S &s) throw(); 00176 template <class MV,class S> friend MV &_mvssetre(MV &mv, const S &s) throw(); 00177 template <class DP,class V,class SV> friend void _vmvaccu(DP &dp, const V & rv1, const SV &rv2) 00178 #if(CXSC_INDEX_CHECK) 00179 throw(OP_WITH_WRONG_DIM); 00180 #else 00181 throw(); 00182 #endif 00183 template <class DP,class MV1,class MV2> friend void _mvmvaccu(DP &dp, const MV1 & rv1, const MV2 &rv2) 00184 #if(CXSC_INDEX_CHECK) 00185 throw(OP_WITH_WRONG_DIM); 00186 #else 00187 throw(); 00188 #endif 00189 template <class MV1,class MV2,class S> friend S _mvmvcimult(const MV1 & rv1, const MV2 &rv2) 00190 #if(CXSC_INDEX_CHECK) 00191 throw(ERROR__OP_WITH_WRONG_DIM<MV1>); 00192 #else 00193 throw(); 00194 #endif 00195 template <class V,class MV,class S> friend S _vmvcimult(const V &rv1, const MV &rv2) 00196 #if(CXSC_INDEX_CHECK) 00197 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00198 #else 00199 throw(); 00200 #endif 00201 template <class MV,class S,class E> friend E _mvsmult(const MV &rv, const S &s) throw(); 00202 template <class MV1,class MV2,class E> friend E _mvmvplus(const MV1 &rv1, const MV2 &rv2) 00203 #if(CXSC_INDEX_CHECK) 00204 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00205 #else 00206 throw(); 00207 #endif 00208 template <class MV1,class MV2,class E> friend E _mvmvminus(const MV1 &rv1, const MV2 &rv2) 00209 #if(CXSC_INDEX_CHECK) 00210 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00211 #else 00212 throw(); 00213 #endif 00214 template <class MV,class V,class E> friend E _mvvplus(const MV &rv1, const V &rv2) 00215 #if(CXSC_INDEX_CHECK) 00216 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00217 #else 00218 throw(); 00219 #endif 00220 template <class MV,class V,class E> friend E _mvvminus(const MV &rv1, const V &rv2) 00221 #if(CXSC_INDEX_CHECK) 00222 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00223 #else 00224 throw(); 00225 #endif 00226 template <class V,class MV,class E> friend E _vmvminus(const V &rv1, const MV &rv2) 00227 #if(CXSC_INDEX_CHECK) 00228 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00229 #else 00230 throw(); 00231 #endif 00232 template <class MV,class S,class E> friend E _mvsdiv(const MV &rv, const S &s) throw(); 00233 template <class MV,class S> friend MV &_mvsmultassign(MV &v,const S &r) throw(); 00234 template <class MV, class S> friend MV &_mvsplusassign(MV &v,const S &r) throw(); 00235 template <class MV,class S> friend MV &_mvsminusassign(MV &v,const S &r) throw(); 00236 template <class MV,class S> friend MV &_mvsdivassign(MV &v,const S &r) throw(); 00237 template <class MV,class V> friend MV &_mvvplusassign(MV &v,const V &rv) 00238 #if(CXSC_INDEX_CHECK) 00239 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00240 #else 00241 throw(); 00242 #endif 00243 template <class V,class MV> friend V &_vmvplusassign(V &rv,const MV &v) 00244 #if(CXSC_INDEX_CHECK) 00245 throw(ERROR__OP_WITH_WRONG_DIM<V>); 00246 #else 00247 throw(); 00248 #endif 00249 template <class MV,class V> friend MV &_mvvminusassign(MV &v,const V &rv) 00250 #if(CXSC_INDEX_CHECK) 00251 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00252 #else 00253 throw(); 00254 #endif 00255 template <class V,class MV> friend V &_vmvminusassign(V &rv,const MV &v) 00256 #if(CXSC_INDEX_CHECK) 00257 throw(ERROR__OP_WITH_WRONG_DIM<V>); 00258 #else 00259 throw(); 00260 #endif 00261 template <class MV1,class MV2,class E> friend E _mvmvconv(const MV1 &rv1, const MV2 &rv2) 00262 #if(CXSC_INDEX_CHECK) 00263 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00264 #else 00265 throw(); 00266 #endif 00267 template <class MV,class V,class E> friend E _mvvconv(const MV &rv1, const V &rv2) 00268 #if(CXSC_INDEX_CHECK) 00269 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00270 #else 00271 throw(); 00272 #endif 00273 template <class MV,class V> friend MV &_mvvconvassign(MV &v,const V &rv) 00274 #if(CXSC_INDEX_CHECK) 00275 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00276 #else 00277 throw(); 00278 #endif 00279 template <class MV1,class MV2,class E> friend E _mvmvsect(const MV1 &rv1, const MV2 &rv2) 00280 #if(CXSC_INDEX_CHECK) 00281 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00282 #else 00283 throw(); 00284 #endif 00285 template <class MV,class V,class E> friend E _mvvsect(const MV &rv1, const V &rv2) 00286 #if(CXSC_INDEX_CHECK) 00287 throw(ERROR__OP_WITH_WRONG_DIM<E>); 00288 #else 00289 throw(); 00290 #endif 00291 template <class MV,class V> friend MV &_mvvsectassign(MV &v,const V &rv) 00292 #if(CXSC_INDEX_CHECK) 00293 throw(ERROR__OP_WITH_WRONG_DIM<MV>); 00294 #else 00295 throw(); 00296 #endif 00297 template <class V,class MV> friend V &_vmvsectassign(V &rv,const MV &v) 00298 #if(CXSC_INDEX_CHECK) 00299 throw(ERROR__OP_WITH_WRONG_DIM<V>); 00300 #else 00301 throw(); 00302 #endif 00303 00304 // Real 00305 00306 // complex 00307 00308 // interval 00309 00310 #endif 00311 00312 //----------------- Konstruktoren ---------------------------------- 00313 00315 explicit INLINE cimatrix_subv (cinterval *d, const int &l, const int &u, const int &s, const int &st, const int &o) throw():dat(d),lb(l),ub(u),size(s),start(st),offset(o) { } 00316 public: 00318 INLINE cimatrix_subv(const cimatrix_subv &v) throw():dat(v.dat),lb(v.lb),ub(v.ub),size(v.size),start(v.start),offset(v.offset) { } 00319 public: 00320 00321 //---------------------- Standardfunktionen ------------------------ 00322 00324 cimatrix_subv &operator =(const scimatrix_subv &rv); 00326 cimatrix_subv &operator =(const srmatrix_subv &rv); 00328 cimatrix_subv &operator =(const simatrix_subv &rv); 00330 cimatrix_subv &operator =(const scmatrix_subv &rv); 00331 00333 cimatrix_subv &operator =(const scivector &rv); 00335 cimatrix_subv &operator =(const srvector &rv); 00337 cimatrix_subv &operator =(const scvector &rv); 00339 cimatrix_subv &operator =(const sivector &rv); 00340 00342 cimatrix_subv &operator =(const scivector_slice &rv); 00344 cimatrix_subv &operator =(const srvector_slice &rv); 00346 cimatrix_subv &operator =(const scvector_slice &rv); 00348 cimatrix_subv &operator =(const sivector_slice &rv); 00349 00351 cimatrix_subv &operator =(const cimatrix_subv &rv) throw(); 00353 cimatrix_subv &operator =(const cinterval &r) throw(); 00355 cimatrix_subv &operator =(const cimatrix &m) 00356 #if(CXSC_INDEX_CHECK) 00357 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00358 #else 00359 throw(); 00360 #endif 00361 00362 cimatrix_subv &operator =(const cimatrix_slice &m) 00363 #if(CXSC_INDEX_CHECK) 00364 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00365 #else 00366 throw(); 00367 #endif 00368 00369 INLINE cimatrix_subv &operator =(const civector &v) 00370 #if(CXSC_INDEX_CHECK) 00371 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00372 #else 00373 throw(); 00374 #endif 00375 00376 INLINE cimatrix_subv &operator =(const civector_slice &v) 00377 #if(CXSC_INDEX_CHECK) 00378 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00379 #else 00380 throw(); 00381 #endif 00382 // Real 00384 INLINE cimatrix_subv &operator =(const real &r) throw(); 00386 INLINE cimatrix_subv &operator =(const rmatrix &m) 00387 #if(CXSC_INDEX_CHECK) 00388 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00389 #else 00390 throw(); 00391 #endif 00392 00393 INLINE cimatrix_subv &operator =(const rmatrix_slice &m) 00394 #if(CXSC_INDEX_CHECK) 00395 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00396 #else 00397 throw(); 00398 #endif 00399 00400 INLINE cimatrix_subv &operator =(const rvector &v) 00401 #if(CXSC_INDEX_CHECK) 00402 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00403 #else 00404 throw(); 00405 #endif 00406 00407 INLINE cimatrix_subv &operator =(const rvector_slice &v) 00408 #if(CXSC_INDEX_CHECK) 00409 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00410 #else 00411 throw(); 00412 #endif 00413 00414 INLINE cimatrix_subv &operator =(const rmatrix_subv &rv) throw(); 00415 00416 // complex 00418 INLINE cimatrix_subv &operator =(const complex &r) throw(); 00420 INLINE cimatrix_subv &operator =(const cmatrix &m) 00421 #if(CXSC_INDEX_CHECK) 00422 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00423 #else 00424 throw(); 00425 #endif 00426 00427 INLINE cimatrix_subv &operator =(const cmatrix_slice &m) 00428 #if(CXSC_INDEX_CHECK) 00429 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00430 #else 00431 throw(); 00432 #endif 00433 00434 INLINE cimatrix_subv &operator =(const cvector &v) 00435 #if(CXSC_INDEX_CHECK) 00436 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00437 #else 00438 throw(); 00439 #endif 00440 00441 INLINE cimatrix_subv &operator =(const cvector_slice &v) 00442 #if(CXSC_INDEX_CHECK) 00443 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00444 #else 00445 throw(); 00446 #endif 00447 00448 INLINE cimatrix_subv &operator =(const cmatrix_subv &rv) throw(); 00449 00450 // interval 00452 INLINE cimatrix_subv &operator =(const interval &r) throw(); 00454 INLINE cimatrix_subv &operator =(const imatrix &m) 00455 #if(CXSC_INDEX_CHECK) 00456 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00457 #else 00458 throw(); 00459 #endif 00460 00461 INLINE cimatrix_subv &operator =(const imatrix_slice &m) 00462 #if(CXSC_INDEX_CHECK) 00463 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 00464 #else 00465 throw(); 00466 #endif 00467 00468 INLINE cimatrix_subv &operator =(const ivector &v) 00469 #if(CXSC_INDEX_CHECK) 00470 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00471 #else 00472 throw(); 00473 #endif 00474 00475 INLINE cimatrix_subv &operator =(const ivector_slice &v) 00476 #if(CXSC_INDEX_CHECK) 00477 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00478 #else 00479 throw(); 00480 #endif 00481 00482 INLINE cimatrix_subv &operator =(const imatrix_subv &rv) throw(); 00483 00485 friend INLINE int Lb(const cimatrix_subv &rv) throw() { return rv.lb; } 00487 friend INLINE int Ub(const cimatrix_subv &rv) throw() { return rv.ub; } 00489 friend INLINE int VecLen(const cimatrix_subv &rv) throw() { return rv.size; } 00490 00492 INLINE cinterval &operator [](const int &i) const 00493 #if(CXSC_INDEX_CHECK) 00494 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC); 00495 #else 00496 throw(); 00497 #endif 00498 00500 INLINE cinterval &operator [](const int &i) 00501 #if(CXSC_INDEX_CHECK) 00502 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC); 00503 #else 00504 throw(); 00505 #endif 00506 00508 INLINE cimatrix_subv &operator ()() throw() { return *this; } 00510 INLINE cimatrix_subv operator ()(const int &i) 00511 #if(CXSC_INDEX_CHECK) 00512 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG); 00513 #else 00514 throw(); 00515 #endif 00516 00517 INLINE cimatrix_subv operator ()(const int &i1,const int &i2) 00518 #if(CXSC_INDEX_CHECK) 00519 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG); 00520 #else 00521 throw(); 00522 #endif 00523 00525 INLINE cimatrix_subv &operator *=(const cinterval &c) throw(); 00527 INLINE cimatrix_subv &operator +=(const cinterval &c) throw(); 00529 INLINE cimatrix_subv &operator -=(const cinterval &c) throw(); 00531 INLINE cimatrix_subv &operator /=(const cinterval &c) throw(); 00533 INLINE cimatrix_subv &operator -=(const scivector &rv); 00535 INLINE cimatrix_subv &operator +=(const scivector &rv); 00537 INLINE cimatrix_subv &operator &=(const scivector &rv); 00539 INLINE cimatrix_subv &operator |=(const scivector &rv); 00541 INLINE cimatrix_subv &operator -=(const scivector_slice &rv); 00543 INLINE cimatrix_subv &operator +=(const scivector_slice &rv); 00545 INLINE cimatrix_subv &operator &=(const scivector_slice &rv); 00547 INLINE cimatrix_subv &operator |=(const scivector_slice &rv); 00549 INLINE cimatrix_subv &operator -=(const scimatrix_subv &rv); 00551 INLINE cimatrix_subv &operator +=(const scimatrix_subv &rv); 00553 INLINE cimatrix_subv &operator &=(const scimatrix_subv &rv); 00555 INLINE cimatrix_subv &operator |=(const scimatrix_subv &rv); 00556 00558 INLINE cimatrix_subv &operator -=(const civector &rv) 00559 #if(CXSC_INDEX_CHECK) 00560 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00561 #else 00562 throw(); 00563 #endif 00564 00565 INLINE cimatrix_subv &operator +=(const civector &rv) 00566 #if(CXSC_INDEX_CHECK) 00567 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00568 #else 00569 throw(); 00570 #endif 00571 00572 INLINE cimatrix_subv &operator -=(const civector_slice &rv) 00573 #if(CXSC_INDEX_CHECK) 00574 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00575 #else 00576 throw(); 00577 #endif 00578 00579 INLINE cimatrix_subv &operator +=(const civector_slice &rv) 00580 #if(CXSC_INDEX_CHECK) 00581 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00582 #else 00583 throw(); 00584 #endif 00585 00586 INLINE cimatrix_subv &operator |=(const civector &rv) 00587 #if(CXSC_INDEX_CHECK) 00588 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00589 #else 00590 throw(); 00591 #endif 00592 00593 INLINE cimatrix_subv &operator |=(const civector_slice &rv) 00594 #if(CXSC_INDEX_CHECK) 00595 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00596 #else 00597 throw(); 00598 #endif 00599 00600 INLINE cimatrix_subv &operator &=(const civector &rv) 00601 #if(CXSC_INDEX_CHECK) 00602 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00603 #else 00604 throw(); 00605 #endif 00606 00607 INLINE cimatrix_subv &operator &=(const civector_slice &rv) 00608 #if(CXSC_INDEX_CHECK) 00609 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00610 #else 00611 throw(); 00612 #endif 00613 // real 00615 INLINE cimatrix_subv &operator *=(const real &c) throw(); 00617 INLINE cimatrix_subv &operator +=(const real &c) throw(); 00619 INLINE cimatrix_subv &operator -=(const real &c) throw(); 00621 INLINE cimatrix_subv &operator /=(const real &c) throw(); 00623 INLINE cimatrix_subv &operator -=(const srvector &rv); 00625 INLINE cimatrix_subv &operator +=(const srvector &rv); 00627 INLINE cimatrix_subv &operator |=(const srvector &rv); 00629 INLINE cimatrix_subv &operator -=(const srvector_slice &rv); 00631 INLINE cimatrix_subv &operator +=(const srvector_slice &rv); 00633 INLINE cimatrix_subv &operator |=(const srvector_slice &rv); 00635 INLINE cimatrix_subv &operator -=(const srmatrix_subv &rv); 00637 INLINE cimatrix_subv &operator +=(const srmatrix_subv &rv); 00639 INLINE cimatrix_subv &operator |=(const srmatrix_subv &rv); 00641 INLINE cimatrix_subv &operator -=(const rvector &rv) 00642 #if(CXSC_INDEX_CHECK) 00643 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00644 #else 00645 throw(); 00646 #endif 00647 00648 INLINE cimatrix_subv &operator +=(const rvector &rv) 00649 #if(CXSC_INDEX_CHECK) 00650 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00651 #else 00652 throw(); 00653 #endif 00654 00655 INLINE cimatrix_subv &operator -=(const rvector_slice &rv) 00656 #if(CXSC_INDEX_CHECK) 00657 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00658 #else 00659 throw(); 00660 #endif 00661 00662 INLINE cimatrix_subv &operator +=(const rvector_slice &rv) 00663 #if(CXSC_INDEX_CHECK) 00664 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00665 #else 00666 throw(); 00667 #endif 00668 00669 INLINE cimatrix_subv &operator |=(const rvector &rv) 00670 #if(CXSC_INDEX_CHECK) 00671 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00672 #else 00673 throw(); 00674 #endif 00675 00676 INLINE cimatrix_subv &operator |=(const rvector_slice &rv) 00677 #if(CXSC_INDEX_CHECK) 00678 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00679 #else 00680 throw(); 00681 #endif 00682 00683 INLINE cimatrix_subv &operator &=(const rvector &rv) 00684 #if(CXSC_INDEX_CHECK) 00685 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00686 #else 00687 throw(); 00688 #endif 00689 00690 INLINE cimatrix_subv &operator &=(const rvector_slice &rv) 00691 #if(CXSC_INDEX_CHECK) 00692 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00693 #else 00694 throw(); 00695 #endif 00696 // complex 00698 INLINE cimatrix_subv &operator *=(const complex &c) throw(); 00700 INLINE cimatrix_subv &operator +=(const complex &c) throw(); 00702 INLINE cimatrix_subv &operator -=(const complex &c) throw(); 00704 INLINE cimatrix_subv &operator /=(const complex &c) throw(); 00706 INLINE cimatrix_subv &operator -=(const scvector &rv); 00708 INLINE cimatrix_subv &operator +=(const scvector &rv); 00710 INLINE cimatrix_subv &operator |=(const scvector &rv); 00712 INLINE cimatrix_subv &operator -=(const scvector_slice &rv); 00714 INLINE cimatrix_subv &operator +=(const scvector_slice &rv); 00716 INLINE cimatrix_subv &operator |=(const scvector_slice &rv); 00718 INLINE cimatrix_subv &operator -=(const scmatrix_subv &rv); 00720 INLINE cimatrix_subv &operator +=(const scmatrix_subv &rv); 00722 INLINE cimatrix_subv &operator &=(const scmatrix_subv &rv); 00724 INLINE cimatrix_subv &operator |=(const scmatrix_subv &rv); 00726 INLINE cimatrix_subv &operator -=(const cvector &rv) 00727 #if(CXSC_INDEX_CHECK) 00728 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00729 #else 00730 throw(); 00731 #endif 00732 00733 INLINE cimatrix_subv &operator +=(const cvector &rv) 00734 #if(CXSC_INDEX_CHECK) 00735 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00736 #else 00737 throw(); 00738 #endif 00739 00740 INLINE cimatrix_subv &operator -=(const cvector_slice &rv) 00741 #if(CXSC_INDEX_CHECK) 00742 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00743 #else 00744 throw(); 00745 #endif 00746 00747 INLINE cimatrix_subv &operator +=(const cvector_slice &rv) 00748 #if(CXSC_INDEX_CHECK) 00749 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00750 #else 00751 throw(); 00752 #endif 00753 00754 INLINE cimatrix_subv &operator |=(const cvector &rv) 00755 #if(CXSC_INDEX_CHECK) 00756 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00757 #else 00758 throw(); 00759 #endif 00760 00761 INLINE cimatrix_subv &operator |=(const cvector_slice &rv) 00762 #if(CXSC_INDEX_CHECK) 00763 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00764 #else 00765 throw(); 00766 #endif 00767 00768 INLINE cimatrix_subv &operator &=(const cvector &rv) 00769 #if(CXSC_INDEX_CHECK) 00770 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00771 #else 00772 throw(); 00773 #endif 00774 00775 INLINE cimatrix_subv &operator &=(const cvector_slice &rv) 00776 #if(CXSC_INDEX_CHECK) 00777 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00778 #else 00779 throw(); 00780 #endif 00781 // interval 00783 INLINE cimatrix_subv &operator *=(const interval &c) throw(); 00785 INLINE cimatrix_subv &operator +=(const interval &c) throw(); 00787 INLINE cimatrix_subv &operator -=(const interval &c) throw(); 00789 INLINE cimatrix_subv &operator /=(const interval &c) throw(); 00791 INLINE cimatrix_subv &operator -=(const sivector &rv); 00793 INLINE cimatrix_subv &operator +=(const sivector &rv); 00795 INLINE cimatrix_subv &operator &=(const sivector &rv); 00797 INLINE cimatrix_subv &operator |=(const sivector &rv); 00799 INLINE cimatrix_subv &operator -=(const sivector_slice &rv); 00801 INLINE cimatrix_subv &operator +=(const sivector_slice &rv); 00803 INLINE cimatrix_subv &operator &=(const sivector_slice &rv); 00805 INLINE cimatrix_subv &operator |=(const sivector_slice &rv); 00807 INLINE cimatrix_subv &operator -=(const simatrix_subv &rv); 00809 INLINE cimatrix_subv &operator +=(const simatrix_subv &rv); 00811 INLINE cimatrix_subv &operator &=(const simatrix_subv &rv); 00813 INLINE cimatrix_subv &operator |=(const simatrix_subv &rv); 00815 INLINE cimatrix_subv &operator -=(const ivector &rv) 00816 #if(CXSC_INDEX_CHECK) 00817 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00818 #else 00819 throw(); 00820 #endif 00821 00822 INLINE cimatrix_subv &operator +=(const ivector &rv) 00823 #if(CXSC_INDEX_CHECK) 00824 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00825 #else 00826 throw(); 00827 #endif 00828 00829 INLINE cimatrix_subv &operator -=(const ivector_slice &rv) 00830 #if(CXSC_INDEX_CHECK) 00831 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00832 #else 00833 throw(); 00834 #endif 00835 00836 INLINE cimatrix_subv &operator +=(const ivector_slice &rv) 00837 #if(CXSC_INDEX_CHECK) 00838 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00839 #else 00840 throw(); 00841 #endif 00842 00843 INLINE cimatrix_subv &operator |=(const ivector &rv) 00844 #if(CXSC_INDEX_CHECK) 00845 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00846 #else 00847 throw(); 00848 #endif 00849 00850 INLINE cimatrix_subv &operator |=(const ivector_slice &rv) 00851 #if(CXSC_INDEX_CHECK) 00852 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00853 #else 00854 throw(); 00855 #endif 00856 00857 INLINE cimatrix_subv &operator &=(const ivector &rv) 00858 #if(CXSC_INDEX_CHECK) 00859 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00860 #else 00861 throw(); 00862 #endif 00863 00864 INLINE cimatrix_subv &operator &=(const ivector_slice &rv) 00865 #if(CXSC_INDEX_CHECK) 00866 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 00867 #else 00868 throw(); 00869 #endif 00870 //#else 00871 //#endif 00872 00873 }; 00874 00875 00877 INLINE cimatrix_subv Row(cimatrix &m,const int &i) 00878 #if(CXSC_INDEX_CHECK) 00879 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00880 #else 00881 throw(); 00882 #endif 00883 00884 INLINE cimatrix_subv Col(cimatrix &m,const int &i) 00885 #if(CXSC_INDEX_CHECK) 00886 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 00887 #else 00888 throw(); 00889 #endif 00890 00891 00892 00893 00894 class cimatrix_slice; 00895 00896 // --------------------------------------------------------------------------- 00897 // ---- ---- 00898 // ---- class cimatrix (declaration) ---- 00899 // ---- ---- 00900 // --------------------------------------------------------------------------- 00901 00902 00904 00907 class cimatrix 00908 { 00909 friend class cimatrix_slice; 00910 friend class cimatrix_subv; 00911 private: 00912 cinterval *dat; 00913 int lb1,ub1,lb2,ub2,xsize,ysize; 00914 00915 public: 00916 //#if(CXSC_INDEX_CHECK) 00917 #ifdef _CXSC_FRIEND_TPL 00918 //----------------- Templates --------------------------------------- 00919 template <class S,class M> friend void _smconstr(S &s,const M &m) 00920 #if(CXSC_INDEX_CHECK) 00921 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>,ERROR__USE_OF_UNINITIALIZED_OBJ<M>); 00922 #else 00923 throw(); 00924 #endif 00925 template <class V,class M,class S> friend void _vmconstr(V &v,const M &m) 00926 #if(CXSC_INDEX_CHECK) 00927 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>); 00928 #else 00929 throw(); 00930 #endif 00931 template <class M1,class M2,class S> friend M1 &_mmassign(M1 &m1,const M2 &m,S ms) throw(); 00932 template <class M,class MS2,class S> friend M &_mmsassign(M &m,const MS2 &ms) throw(); 00933 template <class MS,class M> friend MS &_msmassign(MS &ms,const M &m) 00934 #if(CXSC_INDEX_CHECK) 00935 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 00936 #else 00937 throw(); 00938 #endif 00939 template <class M,class S> friend M &_msassign(M &m,const S &r) throw(); 00940 template <class V,class M,class S> friend V &_vmassign(V &v,const M &m) 00941 #if(CXSC_INDEX_CHECK) 00942 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<M>); 00943 #else 00944 throw(); 00945 #endif 00946 template <class M,class V,class S> friend M &_mvassign(M &m,const V &v) throw(); 00947 template <class M> friend int _mlb(const M &m, const int &i) 00948 #if(CXSC_INDEX_CHECK) 00949 throw(ERROR__WRONG_ROW_OR_COL<M>); 00950 #else 00951 throw(); 00952 #endif 00953 template <class M> friend int _mub(const M &m, const int &i) 00954 #if(CXSC_INDEX_CHECK) 00955 throw(ERROR__WRONG_ROW_OR_COL<M>); 00956 #else 00957 throw(); 00958 #endif 00959 template <class M> friend M &_msetlb(M &m, const int &i,const int &j) 00960 #if(CXSC_INDEX_CHECK) 00961 throw(ERROR__WRONG_ROW_OR_COL<M>); 00962 #else 00963 throw(); 00964 #endif 00965 template <class M> friend M &_msetub(M &m, const int &i,const int &j) 00966 #if(CXSC_INDEX_CHECK) 00967 throw(ERROR__WRONG_ROW_OR_COL<M>); 00968 #else 00969 throw(); 00970 #endif 00971 template <class M> friend void _mresize(M &A) throw(); 00972 template <class M,class S> friend void _mresize(M &A,const int &m, const int &n) 00973 #if(CXSC_INDEX_CHECK) 00974 throw(ERROR__WRONG_BOUNDARIES<M>); 00975 #else 00976 throw(); 00977 #endif 00978 template <class M,class S> friend void _mresize(M &A,const int &m1, const int &m2,const int &n1,const int &n2) 00979 #if(CXSC_INDEX_CHECK) 00980 throw(ERROR__WRONG_BOUNDARIES<M>); 00981 #else 00982 throw(); 00983 #endif 00984 template <class M,class E> friend E _mabs(const M &m) throw(); 00985 template <class M,class E> friend E _mdiam(const M &m) throw(); 00986 template <class M,class E> friend E _mmid(const M &m) throw(); 00987 template <class M,class E> friend E _mre(const M &m) throw(); 00988 template <class M,class E> friend E _mim(const M &m) throw(); 00989 friend INLINE rmatrix SupRe(const cimatrix &v) throw(); 00990 friend INLINE rmatrix SupIm(const cimatrix &v) throw(); 00991 friend INLINE rmatrix InfRe(const cimatrix &v) throw(); 00992 friend INLINE rmatrix InfIm(const cimatrix &v) throw(); 00993 template <class M1,class M2> friend M1 &_mmsetre(M1 &m1,const M2 &m2) 00994 #if(CXSC_INDEX_CHECK) 00995 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 00996 #else 00997 throw(); 00998 #endif 00999 template <class M1,class M2> friend M1 &_mmsetim(M1 &m1,const M2 &m2) 01000 #if(CXSC_INDEX_CHECK) 01001 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01002 #else 01003 throw(); 01004 #endif 01005 template <class M1,class MS2> friend M1 &_mmssetre(M1 &m1,const MS2 &ms2) 01006 #if(CXSC_INDEX_CHECK) 01007 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01008 #else 01009 throw(); 01010 #endif 01011 template <class M1,class MS2> friend M1 &_mmssetim(M1 &m1,const MS2 &ms2) 01012 #if(CXSC_INDEX_CHECK) 01013 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01014 #else 01015 throw(); 01016 #endif 01017 template <class M,class E> friend E _minf(const M &m) throw(); 01018 template <class M,class E> friend E _msup(const M &m) throw(); 01019 template <class M1,class M2> friend M1 &_mmsetinf(M1 &m1,const M2 &m2) 01020 #if(CXSC_INDEX_CHECK) 01021 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01022 #else 01023 throw(); 01024 #endif 01025 template <class M1,class M2> friend M1 &_mmsetsup(M1 &m1,const M2 &m2) 01026 #if(CXSC_INDEX_CHECK) 01027 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01028 #else 01029 throw(); 01030 #endif 01031 template <class M1,class MS2> friend M1 &_mmssetinf(M1 &m1,const MS2 &ms2) 01032 #if(CXSC_INDEX_CHECK) 01033 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01034 #else 01035 throw(); 01036 #endif 01037 template <class M1,class MS2> friend M1 &_mmssetsup(M1 &m1,const MS2 &ms2) 01038 #if(CXSC_INDEX_CHECK) 01039 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01040 #else 01041 throw(); 01042 #endif 01043 template <class M1,class M2> friend M1 &_mmusetinf(M1 &m1,const M2 &m2) 01044 #if(CXSC_INDEX_CHECK) 01045 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01046 #else 01047 throw(); 01048 #endif 01049 template <class M1,class M2> friend M1 &_mmusetsup(M1 &m1,const M2 &m2) 01050 #if(CXSC_INDEX_CHECK) 01051 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01052 #else 01053 throw(); 01054 #endif 01055 template <class M1,class MS2> friend M1 &_mmsusetinf(M1 &m1,const MS2 &ms2) 01056 #if(CXSC_INDEX_CHECK) 01057 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01058 #else 01059 throw(); 01060 #endif 01061 template <class M1,class MS2> friend M1 &_mmsusetsup(M1 &m1,const MS2 &ms2) 01062 #if(CXSC_INDEX_CHECK) 01063 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01064 #else 01065 throw(); 01066 #endif 01067 //-------------- matrix-matrix ------------- 01068 template <class M1,class M2,class E> friend E _mmplus(const M1 &m1,const M2 &m2) 01069 #if(CXSC_INDEX_CHECK) 01070 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01071 #else 01072 throw(); 01073 #endif 01074 template <class M,class MS,class E> friend E _mmsplus(const M &m,const MS &ms) 01075 #if(CXSC_INDEX_CHECK) 01076 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01077 #else 01078 throw(); 01079 #endif 01080 template <class M> friend M _mminus(const M &m) throw(); 01081 template <class MS,class E> friend E _msminus(const MS &ms) throw(); 01082 template <class M1,class M2,class E> friend E _mmminus(const M1 &m1,const M2 &m2) 01083 #if(CXSC_INDEX_CHECK) 01084 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01085 #else 01086 throw(); 01087 #endif 01088 template <class M1,class M2> friend M1 &_mmplusassign(M1 &m1,const M2 &m2) 01089 #if(CXSC_INDEX_CHECK) 01090 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01091 #else 01092 throw(); 01093 #endif 01094 template <class M,class MS> friend M &_mmsplusassign(M &m1,const MS &ms) 01095 #if(CXSC_INDEX_CHECK) 01096 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01097 #else 01098 throw(); 01099 #endif 01100 template <class MS,class M> friend MS &_msmplusassign(MS &ms,const M &m1) 01101 #if(CXSC_INDEX_CHECK) 01102 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01103 #else 01104 throw(); 01105 #endif 01106 template <class MS1,class MS2,class E> friend E _msmsplus(const MS1 &m1,const MS2 &m2) 01107 #if(CXSC_INDEX_CHECK) 01108 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01109 #else 01110 throw(); 01111 #endif 01112 template <class M,class MS,class E> friend E _mmsminus(const M &m,const MS &ms) 01113 #if(CXSC_INDEX_CHECK) 01114 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01115 #else 01116 throw(); 01117 #endif 01118 template <class MS,class M,class E> friend E _msmminus(const MS &ms,const M &m) 01119 #if(CXSC_INDEX_CHECK) 01120 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01121 #else 01122 throw(); 01123 #endif 01124 template <class MS1,class MS2,class E> friend E _msmsminus(const MS1 &ms1,const MS2 &ms2) 01125 #if(CXSC_INDEX_CHECK) 01126 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01127 #else 01128 throw(); 01129 #endif 01130 template <class M1,class M2> friend M1 &_mmminusassign(M1 &m1,const M2 &m2) 01131 #if(CXSC_INDEX_CHECK) 01132 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01133 #else 01134 throw(); 01135 #endif 01136 template <class M,class MS> friend M &_mmsminusassign(M &m1,const MS &ms) 01137 #if(CXSC_INDEX_CHECK) 01138 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01139 #else 01140 throw(); 01141 #endif 01142 template <class MS,class M> friend MS &_msmminusassign(MS &ms,const M &m1) 01143 #if(CXSC_INDEX_CHECK) 01144 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01145 #else 01146 throw(); 01147 #endif 01148 template <class M1,class M2,class E> friend E _mmcimult(const M1 &m1, const M2 &m2) 01149 #if(CXSC_INDEX_CHECK) 01150 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01151 #else 01152 throw(); 01153 #endif 01154 template <class M1,class M2,class S> friend M1 &_mmcimultassign(M1 &m1,const M2 &m2) 01155 #if(CXSC_INDEX_CHECK) 01156 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01157 #else 01158 throw(); 01159 #endif 01160 template <class M,class MS,class E> friend E _mmscimult(const M &m1, const MS &ms) 01161 #if(CXSC_INDEX_CHECK) 01162 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01163 #else 01164 throw(); 01165 #endif 01166 template <class MS,class M,class E> friend E _msmcimult(const MS &ms, const M &m2) 01167 #if(CXSC_INDEX_CHECK) 01168 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01169 #else 01170 throw(); 01171 #endif 01172 template <class M,class MS,class S> friend M &_mmscimultassign(M &m1,const MS &ms) 01173 #if(CXSC_INDEX_CHECK) 01174 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01175 #else 01176 throw(); 01177 #endif 01178 template <class MS1,class MS2,class E> friend E _msmscimult(const MS1 &ms1, const MS2 &ms2) 01179 #if(CXSC_INDEX_CHECK) 01180 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01181 #else 01182 throw(); 01183 #endif 01184 template <class M1,class M2,class E> friend E _mmconv(const M1 &m1,const M2 &m2) 01185 #if(CXSC_INDEX_CHECK) 01186 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01187 #else 01188 throw(); 01189 #endif 01190 template <class M,class MS,class E> friend E _mmsconv(const M &m,const MS &ms) 01191 #if(CXSC_INDEX_CHECK) 01192 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01193 #else 01194 throw(); 01195 #endif 01196 template <class M1,class M2> friend M1 &_mmconvassign(M1 &m1,const M2 &m2) 01197 #if(CXSC_INDEX_CHECK) 01198 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01199 #else 01200 throw(); 01201 #endif 01202 template <class M,class MS> friend M &_mmsconvassign(M &m1,const MS &ms) 01203 #if(CXSC_INDEX_CHECK) 01204 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01205 #else 01206 throw(); 01207 #endif 01208 template <class MS,class M> friend MS &_msmconvassign(MS &ms,const M &m1) 01209 #if(CXSC_INDEX_CHECK) 01210 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01211 #else 01212 throw(); 01213 #endif 01214 template <class MS1,class MS2,class E> friend E _msmsconv(const MS1 &m1,const MS2 &m2) 01215 #if(CXSC_INDEX_CHECK) 01216 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01217 #else 01218 throw(); 01219 #endif 01220 template <class M1,class M2,class E> friend E _mmsect(const M1 &m1,const M2 &m2) 01221 #if(CXSC_INDEX_CHECK) 01222 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01223 #else 01224 throw(); 01225 #endif 01226 template <class M,class MS,class E> friend E _mmssect(const M &m,const MS &ms) 01227 #if(CXSC_INDEX_CHECK) 01228 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01229 #else 01230 throw(); 01231 #endif 01232 template <class M1,class M2> friend M1 &_mmsectassign(M1 &m1,const M2 &m2) 01233 #if(CXSC_INDEX_CHECK) 01234 throw(ERROR__OP_WITH_WRONG_DIM<M1>); 01235 #else 01236 throw(); 01237 #endif 01238 template <class M,class MS> friend M &_mmssectassign(M &m1,const MS &ms) 01239 #if(CXSC_INDEX_CHECK) 01240 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01241 #else 01242 throw(); 01243 #endif 01244 template <class MS,class M> friend MS &_msmsectassign(MS &ms,const M &m1) 01245 #if(CXSC_INDEX_CHECK) 01246 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01247 #else 01248 throw(); 01249 #endif 01250 template <class MS1,class MS2,class E> friend E _msmssect(const MS1 &m1,const MS2 &m2) 01251 #if(CXSC_INDEX_CHECK) 01252 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01253 #else 01254 throw(); 01255 #endif 01256 //-------- matrix-scalar ----------------- 01257 template <class S,class M,class E> friend E _smmult(const S &c, const M &m) throw(); 01258 template <class M,class S> friend M &_msmultassign(M &m,const S &c) throw(); 01259 template <class S,class MS,class E> friend E _smsmult(const S &c, const MS &ms) throw(); 01260 template <class M,class S,class E> friend E _msdiv(const M &m,const S &c) throw(); 01261 template <class M,class S> friend M &_msdivassign(M &m,const S &c) throw(); 01262 template <class MS,class S,class E> friend E _mssdiv(const MS &ms, const S &c) throw(); 01263 //-------- matrix-vector --------------------- 01264 template <class M,class V,class E> friend E _mvcimult(const M &m,const V &v) 01265 #if(CXSC_INDEX_CHECK) 01266 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01267 #else 01268 throw(); 01269 #endif 01270 template <class V,class M,class E> friend E _vmcimult(const V &v,const M &m) 01271 #if(CXSC_INDEX_CHECK) 01272 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01273 #else 01274 throw(); 01275 #endif 01276 template <class V,class M,class S> friend V &_vmcimultassign(V &v,const M &m) 01277 #if(CXSC_INDEX_CHECK) 01278 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01279 #else 01280 throw(); 01281 #endif 01282 template <class VS,class M,class S> friend VS &_vsmcimultassign(VS &v,const M &m) 01283 #if(CXSC_INDEX_CHECK) 01284 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01285 #else 01286 throw(); 01287 #endif 01288 01289 template <class M> friend void *_mvoid(const M &m) throw(); 01290 template <class M> friend bool _mnot(const M &m) throw(); 01291 template <class MS> friend void *_msvoid(const MS &ms) throw(); 01292 template <class MS> friend bool _msnot(const MS &ms) throw(); 01293 template <class M1,class M2> friend bool _mmeq(const M1 &m1,const M2 &m2) throw(); 01294 template <class M1,class M2> friend bool _mmneq(const M1 &m1,const M2 &m2) throw(); 01295 template <class M1,class M2> friend bool _mmless(const M1 &m1,const M2 &m2) throw(); 01296 template <class M1,class M2> friend bool _mmleq(const M1 &m1,const M2 &m2) throw(); 01297 template <class M,class MS> friend bool _mmseq(const M &m1,const MS &ms) throw(); 01298 template <class M,class MS> friend bool _mmsneq(const M &m1,const MS &ms) throw(); 01299 template <class M,class MS> friend bool _mmsless(const M &m1,const MS &ms) throw(); 01300 template <class M,class MS> friend bool _mmsleq(const M &m1,const MS &ms) throw(); 01301 template <class MS,class M> friend bool _msmless(const MS &ms,const M &m1) throw(); 01302 template <class MS,class M> friend bool _msmleq(const MS &ms,const M &m1) throw(); 01303 template <class M> friend std::ostream &_mout(std::ostream &s,const M &r) throw(); 01304 template <class M> friend std::istream &_min(std::istream &s,M &r) throw(); 01305 01306 // Real 01307 01308 //--- Real --------- matrix-matrix ---------------------- 01309 01310 //--- Real --------- matrix-scalar ---------------------- 01311 01312 //--- Real --------- matrix-vector ---------------------- 01313 template <class MS,class V,class E> friend E _msvcimult(const MS &ms,const V &v) 01314 #if(CXSC_INDEX_CHECK) 01315 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01316 #else 01317 throw(); 01318 #endif 01319 template <class V,class MS,class E> friend E _vmscimult(const V &v,const MS &ms) 01320 #if(CXSC_INDEX_CHECK) 01321 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01322 #else 01323 throw(); 01324 #endif 01325 01326 // interval 01327 01328 //--- interval --------- matrix-matrix ---------------------- 01329 01330 //--- interval --------- matrix-scalar ---------------------- 01331 01332 01333 //--- interval --------- matrix-vector ---------------------- 01334 01335 // complex 01336 01337 //--- complex --------- matrix-matrix ---------------------- 01338 01339 //--- complex --------- matrix-scalar ---------------------- 01340 01341 //--- complex --------- matrix-vector ---------------------- 01342 01343 // --- complex x real ---------------- 01344 // -- complex x interval ---------------------- 01345 // ---- complex x interval --- scalar-------- 01346 01347 01348 // ---- complex x interval --- vector -------- 01349 // ---- complex x interval --- matrix ------------ 01350 01351 // complex x complex -------------------- 01352 01353 01354 #endif 01355 01356 //-------------------------- Konstruktoren ---------------------------- 01357 01358 // cinterval 01360 INLINE cimatrix(const cimatrix &rm) throw(); 01362 INLINE cimatrix(const cimatrix_slice &rm) throw(); 01364 INLINE cimatrix(const scimatrix &rm); 01366 INLINE cimatrix(const scimatrix_slice &rm); 01368 INLINE cimatrix() throw(); 01370 explicit INLINE cimatrix(const int &m, const int &n) 01371 #if(CXSC_INDEX_CHECK) 01372 throw(ERROR_CIMATRIX_WRONG_BOUNDARIES); 01373 #else 01374 throw(); 01375 #endif 01376 01377 explicit INLINE cimatrix(const int &m1, const int &n1, const int &m2, const int &n2) 01378 #if(CXSC_INDEX_CHECK) 01379 throw(ERROR_CIMATRIX_WRONG_BOUNDARIES); 01380 #else 01381 throw(); 01382 #endif 01383 01384 explicit INLINE cimatrix(const civector &v) throw(); 01386 explicit INLINE cimatrix(const civector_slice &v) throw(); 01388 explicit INLINE cimatrix(const cinterval &r) throw(); 01390 INLINE cimatrix &operator =(const cinterval &r) throw(); 01392 INLINE cimatrix &operator =(const cimatrix &m) throw(); 01394 INLINE cimatrix &operator =(const cimatrix_slice &ms) throw(); 01396 INLINE cimatrix &operator =(const scimatrix &m); 01398 INLINE cimatrix &operator =(const scimatrix_slice &ms); 01400 INLINE cimatrix &operator =(const civector &v) throw(); 01402 INLINE cimatrix &operator =(const civector_slice &v) throw(); 01403 // real 01405 explicit INLINE cimatrix(const real &r) throw(); 01407 explicit INLINE cimatrix(const rmatrix &rm) throw(); 01409 explicit INLINE cimatrix(const rmatrix_slice &rm) throw(); 01411 explicit INLINE cimatrix(const srmatrix &rm); 01413 explicit INLINE cimatrix(const srmatrix_slice &rm); 01415 explicit INLINE cimatrix(const rvector &v) throw(); 01417 explicit INLINE cimatrix(const rvector_slice &v) throw(); 01419 INLINE cimatrix &operator =(const real &r) throw(); 01421 INLINE cimatrix &operator =(const rmatrix &m) throw(); 01423 INLINE cimatrix &operator =(const rmatrix_slice &ms) throw(); 01425 INLINE cimatrix &operator =(const srmatrix &m); 01427 INLINE cimatrix &operator =(const srmatrix_slice &ms); 01429 INLINE cimatrix &operator =(const rvector &v) throw(); 01431 INLINE cimatrix &operator =(const rvector_slice &v) throw(); 01432 01433 // complex 01435 explicit INLINE cimatrix(const complex &r) throw(); 01437 explicit INLINE cimatrix(const cmatrix &rm) throw(); 01439 explicit INLINE cimatrix(const cmatrix_slice &rm) throw(); 01441 explicit INLINE cimatrix(const scmatrix &rm); 01443 explicit INLINE cimatrix(const scmatrix_slice &rm); 01445 explicit INLINE cimatrix(const cvector &v) throw(); 01447 explicit INLINE cimatrix(const cvector_slice &v) throw(); 01449 INLINE cimatrix &operator =(const complex &r) throw(); 01451 INLINE cimatrix &operator =(const cmatrix &m) throw(); 01453 INLINE cimatrix &operator =(const cmatrix_slice &ms) throw(); 01455 INLINE cimatrix &operator =(const scmatrix &m); 01457 INLINE cimatrix &operator =(const scmatrix_slice &ms); 01459 INLINE cimatrix &operator =(const cvector &v) throw(); 01461 INLINE cimatrix &operator =(const cvector_slice &v) throw(); 01462 01463 // interval 01465 explicit INLINE cimatrix(const interval &r) throw(); 01467 explicit INLINE cimatrix(const imatrix &rm) throw(); 01469 explicit INLINE cimatrix(const imatrix_slice &rm) throw(); 01471 explicit INLINE cimatrix(const simatrix &rm); 01473 explicit INLINE cimatrix(const simatrix_slice &rm); 01475 explicit INLINE cimatrix(const ivector &v) throw(); 01477 explicit INLINE cimatrix(const ivector_slice &v) throw(); 01479 INLINE cimatrix &operator =(const interval &r) throw(); 01481 INLINE cimatrix &operator =(const imatrix &m) throw(); 01483 INLINE cimatrix &operator =(const imatrix_slice &ms) throw(); 01485 INLINE cimatrix &operator =(const simatrix &m); 01487 INLINE cimatrix &operator =(const simatrix_slice &ms); 01489 INLINE cimatrix &operator =(const ivector &v) throw(); 01491 INLINE cimatrix &operator =(const ivector_slice &v) throw(); 01492 01493 //--------------------------- Destruktoren ----------------------------- 01494 01495 INLINE ~cimatrix() throw() { delete [] dat; } 01496 01497 //--------------------------- Operatoren ----------------------------- 01499 INLINE cimatrix &operator +=(const scimatrix &m1); 01501 INLINE cimatrix &operator +=(const scimatrix_slice &m1); 01503 INLINE cimatrix &operator -=(const scimatrix &m1); 01505 INLINE cimatrix &operator -=(const scimatrix_slice &m1); 01507 INLINE cimatrix &operator |=(const scimatrix &m1); 01509 INLINE cimatrix &operator |=(const scimatrix_slice &m1); 01511 INLINE cimatrix &operator &=(const scimatrix &m1); 01513 INLINE cimatrix &operator &=(const scimatrix_slice &m1); 01515 INLINE cimatrix &operator *=(const scimatrix &m1); 01517 INLINE cimatrix &operator *=(const scimatrix_slice &m1); 01518 01520 INLINE cimatrix &operator +=(const srmatrix &m1); 01522 INLINE cimatrix &operator +=(const srmatrix_slice &m1); 01524 INLINE cimatrix &operator -=(const srmatrix &m1); 01526 INLINE cimatrix &operator -=(const srmatrix_slice &m1); 01528 INLINE cimatrix &operator |=(const srmatrix &m1); 01530 INLINE cimatrix &operator |=(const srmatrix_slice &m1); 01532 INLINE cimatrix &operator &=(const srmatrix &m1); 01534 INLINE cimatrix &operator &=(const srmatrix_slice &m1); 01536 INLINE cimatrix &operator *=(const srmatrix &m1); 01538 INLINE cimatrix &operator *=(const srmatrix_slice &m1); 01539 01541 INLINE cimatrix &operator +=(const scmatrix &m1); 01543 INLINE cimatrix &operator +=(const scmatrix_slice &m1); 01545 INLINE cimatrix &operator -=(const scmatrix &m1); 01547 INLINE cimatrix &operator -=(const scmatrix_slice &m1); 01549 INLINE cimatrix &operator |=(const scmatrix &m1); 01551 INLINE cimatrix &operator |=(const scmatrix_slice &m1); 01553 INLINE cimatrix &operator &=(const scmatrix &m1); 01555 INLINE cimatrix &operator &=(const scmatrix_slice &m1); 01557 INLINE cimatrix &operator *=(const scmatrix &m1); 01559 INLINE cimatrix &operator *=(const scmatrix_slice &m1); 01560 01562 INLINE cimatrix &operator +=(const simatrix &m1); 01564 INLINE cimatrix &operator +=(const simatrix_slice &m1); 01566 INLINE cimatrix &operator -=(const simatrix &m1); 01568 INLINE cimatrix &operator -=(const simatrix_slice &m1); 01570 INLINE cimatrix &operator |=(const simatrix &m1); 01572 INLINE cimatrix &operator |=(const simatrix_slice &m1); 01574 INLINE cimatrix &operator &=(const simatrix &m1); 01576 INLINE cimatrix &operator &=(const simatrix_slice &m1); 01578 INLINE cimatrix &operator *=(const simatrix &m1); 01580 INLINE cimatrix &operator *=(const simatrix_slice &m1); 01581 01583 INLINE cimatrix operator()(const intvector& p, const intvector& q); 01585 INLINE cimatrix operator()(const intmatrix& P, const intmatrix& Q); 01587 INLINE cimatrix operator()(const intvector& p); 01589 INLINE cimatrix operator()(const intmatrix& P); 01590 01591 //------------------------- Standardfunktionen ------------------------- 01592 01594 INLINE cimatrix_subv operator [](const int &i) const 01595 #if(CXSC_INDEX_CHECK) 01596 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 01597 #else 01598 throw(); 01599 #endif 01600 01601 INLINE cimatrix_subv operator [](const cxscmatrix_column &i) const 01602 #if(CXSC_INDEX_CHECK) 01603 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 01604 #else 01605 throw(); 01606 #endif 01607 01608 INLINE cimatrix_subv operator [](const int &i) 01609 #if(CXSC_INDEX_CHECK) 01610 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 01611 #else 01612 throw(); 01613 #endif 01614 01615 INLINE cimatrix_subv operator [](const cxscmatrix_column &i) 01616 #if(CXSC_INDEX_CHECK) 01617 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 01618 #else 01619 throw(); 01620 #endif 01621 01623 INLINE cimatrix &operator ()() throw() { return *this; } 01625 INLINE cimatrix_slice operator ()(const int &m, const int &n) 01626 #if(CXSC_INDEX_CHECK) 01627 throw(ERROR_CIMATRIX_SUB_ARRAY_TOO_BIG); 01628 #else 01629 throw(); 01630 #endif 01631 01632 INLINE cimatrix_slice operator ()(const int &m1, const int &m2, const int &n1, const int &n2) 01633 #if(CXSC_INDEX_CHECK) 01634 throw(ERROR_CIMATRIX_SUB_ARRAY_TOO_BIG); 01635 #else 01636 throw(); 01637 #endif 01638 INLINE operator void*() throw(); 01639 //#else 01640 //#endif 01641 }; 01642 01643 01645 01650 class cimatrix_slice 01651 { 01652 friend class cimatrix; 01653 private: 01654 cinterval *dat; 01655 int offset1,offset2,mxsize,mysize; 01656 int start1,end1,start2,end2,sxsize,sysize; // slice size 01657 01658 public: 01659 //#if(CXSC_INDEX_CHECK) 01660 #ifdef _CXSC_FRIEND_TPL 01661 //----------------- Templates --------------------------------------- 01662 template <class V,class MS,class S> friend void _vmsconstr(V &v,const MS &m) 01663 #if(CXSC_INDEX_CHECK) 01664 throw(ERROR__TYPE_CAST_OF_THICK_OBJ<MS>); 01665 #else 01666 throw(); 01667 #endif 01668 template <class MS,class M> friend MS &_msmassign(MS &ms,const M &m) 01669 #if(CXSC_INDEX_CHECK) 01670 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01671 #else 01672 throw(); 01673 #endif 01674 template <class MS1,class MS2> friend MS1 &_msmsassign(MS1 &ms1,const MS2 &ms) 01675 #if(CXSC_INDEX_CHECK) 01676 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01677 #else 01678 throw(); 01679 #endif 01680 template <class M,class MS2,class S> friend M &_mmsassign(M &m,const MS2 &ms) throw(); 01681 template <class MS,class S> friend MS &_mssassign(MS &ms,const S &r) throw(); 01682 template <class MS> friend int _mslb(const MS &ms, const int &i) 01683 #if(CXSC_INDEX_CHECK) 01684 throw(ERROR__WRONG_ROW_OR_COL<MS>); 01685 #else 01686 throw(); 01687 #endif 01688 template <class MS> friend int _msub(const MS &ms, const int &i) 01689 #if(CXSC_INDEX_CHECK) 01690 throw(ERROR__WRONG_ROW_OR_COL<MS>); 01691 #else 01692 throw(); 01693 #endif 01694 template <class MS,class E> friend E _msabs(const MS &ms) throw(); 01695 template <class MS,class E> friend E _msinf(const MS &ms) throw(); 01696 template <class MS,class E> friend E _mssup(const MS &ms) throw(); 01697 template <class MS,class E> friend E _msdiam(const MS &ms) throw(); 01698 template <class MS,class E> friend E _msmid(const MS &ms) throw(); 01699 template <class MS,class E> friend E _msre(const MS &ms) throw(); 01700 template <class MS,class E> friend E _msim(const MS &ms) throw(); 01701 friend INLINE rmatrix SupRe(const cimatrix_slice &v) throw(); 01702 friend INLINE rmatrix SupIm(const cimatrix_slice &v) throw(); 01703 friend INLINE rmatrix InfRe(const cimatrix_slice &v) throw(); 01704 friend INLINE rmatrix InfIm(const cimatrix_slice &v) throw(); 01705 template <class MS1,class M2> friend MS1 &_msmsetre(MS1 &ms1,const M2 &m2) 01706 #if(CXSC_INDEX_CHECK) 01707 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01708 #else 01709 throw(); 01710 #endif 01711 template <class MS1,class M2> friend MS1 &_msmsetim(MS1 &ms1,const M2 &m2) 01712 #if(CXSC_INDEX_CHECK) 01713 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01714 #else 01715 throw(); 01716 #endif 01717 template <class MS1,class MS2> friend MS1 &_msmssetre(MS1 &ms1,const MS2 &ms2) 01718 #if(CXSC_INDEX_CHECK) 01719 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01720 #else 01721 throw(); 01722 #endif 01723 template <class MS1,class MS2> friend MS1 &_msmssetim(MS1 &ms1,const MS2 &ms2) 01724 #if(CXSC_INDEX_CHECK) 01725 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01726 #else 01727 throw(); 01728 #endif 01729 template <class MS1,class M2> friend MS1 &_msmsetinf(MS1 &ms1,const M2 &m2) 01730 #if(CXSC_INDEX_CHECK) 01731 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01732 #else 01733 throw(); 01734 #endif 01735 template <class MS1,class M2> friend MS1 &_msmsetsup(MS1 &ms1,const M2 &m2) 01736 #if(CXSC_INDEX_CHECK) 01737 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01738 #else 01739 throw(); 01740 #endif 01741 template <class MS1,class MS2> friend MS1 &_msmssetinf(MS1 &ms1,const MS2 &ms2) 01742 #if(CXSC_INDEX_CHECK) 01743 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01744 #else 01745 throw(); 01746 #endif 01747 template <class MS1,class MS2> friend MS1 &_msmssetsup(MS1 &ms1,const MS2 &ms2) 01748 #if(CXSC_INDEX_CHECK) 01749 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01750 #else 01751 throw(); 01752 #endif 01753 template <class MS1,class M2> friend MS1 &_msmusetinf(MS1 &ms1,const M2 &m2) 01754 #if(CXSC_INDEX_CHECK) 01755 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01756 #else 01757 throw(); 01758 #endif 01759 template <class MS1,class M2> friend MS1 &_msmusetsup(MS1 &ms1,const M2 &m2) 01760 #if(CXSC_INDEX_CHECK) 01761 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01762 #else 01763 throw(); 01764 #endif 01765 template <class MS1,class MS2> friend MS1 &_msmsusetinf(MS1 &ms1,const MS2 &ms2) 01766 #if(CXSC_INDEX_CHECK) 01767 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01768 #else 01769 throw(); 01770 #endif 01771 template <class MS1,class MS2> friend MS1 &_msmsusetsup(MS1 &ms1,const MS2 &ms2) 01772 #if(CXSC_INDEX_CHECK) 01773 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01774 #else 01775 throw(); 01776 #endif 01777 //-------- matrix-matrix -------------- 01778 template <class MS,class E> friend E _msminus(const MS &ms) throw(); 01779 template <class M,class MS,class E> friend E _mmsplus(const M &m,const MS &ms) 01780 #if(CXSC_INDEX_CHECK) 01781 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01782 #else 01783 throw(); 01784 #endif 01785 template <class MS1,class MS2,class E> friend E _msmsplus(const MS1 &m1,const MS2 &m2) 01786 #if(CXSC_INDEX_CHECK) 01787 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01788 #else 01789 throw(); 01790 #endif 01791 template <class M,class MS> friend M &_mmsplusassign(M &m1,const MS &ms) 01792 #if(CXSC_INDEX_CHECK) 01793 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01794 #else 01795 throw(); 01796 #endif 01797 template <class MS,class M> friend MS &_msmplusassign(MS &ms,const M &m1) 01798 #if(CXSC_INDEX_CHECK) 01799 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01800 #else 01801 throw(); 01802 #endif 01803 template <class MS1,class MS2> friend MS1 &_msmsplusassign(MS1 &ms1,const MS2 &ms2) 01804 #if(CXSC_INDEX_CHECK) 01805 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01806 #else 01807 throw(); 01808 #endif 01809 template <class M,class MS,class E> friend E _mmsminus(const M &m,const MS &ms) 01810 #if(CXSC_INDEX_CHECK) 01811 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01812 #else 01813 throw(); 01814 #endif 01815 template <class MS,class M,class E> friend E _msmminus(const MS &ms,const M &m) 01816 #if(CXSC_INDEX_CHECK) 01817 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01818 #else 01819 throw(); 01820 #endif 01821 template <class MS1,class MS2,class E> friend E _msmsminus(const MS1 &ms1,const MS2 &ms2) 01822 #if(CXSC_INDEX_CHECK) 01823 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01824 #else 01825 throw(); 01826 #endif 01827 template <class M,class MS> friend M &_mmsminusassign(M &m1,const MS &ms) 01828 #if(CXSC_INDEX_CHECK) 01829 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01830 #else 01831 throw(); 01832 #endif 01833 template <class MS,class M> friend MS &_msmminusassign(MS &ms,const M &m1) 01834 #if(CXSC_INDEX_CHECK) 01835 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01836 #else 01837 throw(); 01838 #endif 01839 template <class MS1,class MS2> friend MS1 &_msmsminusassign(MS1 &ms1,const MS2 &ms2) 01840 #if(CXSC_INDEX_CHECK) 01841 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01842 #else 01843 throw(); 01844 #endif 01845 template <class M,class MS,class E> friend E _mmscimult(const M &m1, const MS &ms) 01846 #if(CXSC_INDEX_CHECK) 01847 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01848 #else 01849 throw(); 01850 #endif 01851 template <class MS,class M,class E> friend E _msmcimult(const MS &ms, const M &m2) 01852 #if(CXSC_INDEX_CHECK) 01853 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01854 #else 01855 throw(); 01856 #endif 01857 template <class M,class MS,class S> friend M &_mmscimultassign(M &m1,const MS &ms) 01858 #if(CXSC_INDEX_CHECK) 01859 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01860 #else 01861 throw(); 01862 #endif 01863 template <class MS1,class MS2,class E> friend E _msmscimult(const MS1 &ms1, const MS2 &ms2) 01864 #if(CXSC_INDEX_CHECK) 01865 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01866 #else 01867 throw(); 01868 #endif 01869 template <class M,class MS,class E> friend E _mmsconv(const M &m,const MS &ms) 01870 #if(CXSC_INDEX_CHECK) 01871 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01872 #else 01873 throw(); 01874 #endif 01875 template <class M,class MS> friend M &_mmsconvassign(M &m1,const MS &ms) 01876 #if(CXSC_INDEX_CHECK) 01877 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01878 #else 01879 throw(); 01880 #endif 01881 template <class MS,class M> friend MS &_msmconvassign(MS &ms,const M &m1) 01882 #if(CXSC_INDEX_CHECK) 01883 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01884 #else 01885 throw(); 01886 #endif 01887 template <class MS1,class MS2> friend MS1 &_msmsconvassign(MS1 &ms1,const MS2 &ms2) 01888 #if(CXSC_INDEX_CHECK) 01889 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01890 #else 01891 throw(); 01892 #endif 01893 template <class MS1,class MS2,class E> friend E _msmsconv(const MS1 &m1,const MS2 &m2) 01894 #if(CXSC_INDEX_CHECK) 01895 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01896 #else 01897 throw(); 01898 #endif 01899 template <class M,class MS,class E> friend E _mmssect(const M &m,const MS &ms) 01900 #if(CXSC_INDEX_CHECK) 01901 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01902 #else 01903 throw(); 01904 #endif 01905 template <class M,class MS> friend M &_mmssectassign(M &m1,const MS &ms) 01906 #if(CXSC_INDEX_CHECK) 01907 throw(ERROR__OP_WITH_WRONG_DIM<M>); 01908 #else 01909 throw(); 01910 #endif 01911 template <class MS,class M> friend MS &_msmsectassign(MS &ms,const M &m1) 01912 #if(CXSC_INDEX_CHECK) 01913 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01914 #else 01915 throw(); 01916 #endif 01917 template <class MS1,class MS2> friend MS1 &_msmssectassign(MS1 &ms1,const MS2 &ms2) 01918 #if(CXSC_INDEX_CHECK) 01919 throw(ERROR__OP_WITH_WRONG_DIM<MS1>); 01920 #else 01921 throw(); 01922 #endif 01923 template <class MS1,class MS2,class E> friend E _msmssect(const MS1 &m1,const MS2 &m2) 01924 #if(CXSC_INDEX_CHECK) 01925 throw(ERROR__OP_WITH_WRONG_DIM<E>); 01926 #else 01927 throw(); 01928 #endif 01929 //--------- matrix-vector -------------- 01930 template <class MS,class V,class E> friend E _msvcimult(const MS &ms,const V &v) 01931 #if(CXSC_INDEX_CHECK) 01932 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01933 #else 01934 throw(); 01935 #endif 01936 template <class V,class MS,class E> friend E _vmscimult(const V &v,const MS &ms) 01937 #if(CXSC_INDEX_CHECK) 01938 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01939 #else 01940 throw(); 01941 #endif 01942 template <class V,class MS,class S> friend V &_vmscimultassign(V &v,const MS &ms) 01943 #if(CXSC_INDEX_CHECK) 01944 throw(ERROR__OP_WITH_WRONG_DIM<MS>); 01945 #else 01946 throw(); 01947 #endif 01948 //--------- matrix-scalar -------------- 01949 template <class S,class MS,class E> friend E _smsmult(const S &c, const MS &ms) throw(); 01950 template <class MS,class S> friend MS &_mssmultassign(MS &ms,const S &c) throw(); 01951 template <class MS,class S,class E> friend E _mssdiv(const MS &ms, const S &c) throw(); 01952 template <class MS,class S> friend MS &_mssdivassign(MS &ms,const S &c) throw(); 01953 01954 template <class MS> friend void *_msvoid(const MS &ms) throw(); 01955 template <class MS> friend bool _msnot(const MS &ms) throw(); 01956 template <class M,class MS> friend bool _mmseq(const M &m1,const MS &ms) throw(); 01957 template <class M,class MS> friend bool _mmsneq(const M &m1,const MS &ms) throw(); 01958 template <class M,class MS> friend bool _mmsless(const M &m1,const MS &ms) throw(); 01959 template <class M,class MS> friend bool _mmsleq(const M &m1,const MS &ms) throw(); 01960 template <class MS,class M> friend bool _msmless(const MS &ms,const M &m1) throw(); 01961 template <class MS,class M> friend bool _msmleq(const MS &ms,const M &m1) throw(); 01962 template <class MS1,class MS2> friend bool _msmseq(const MS1 &ms1,const MS2 &ms2) throw(); 01963 template <class MS1,class MS2> friend bool _msmsneq(const MS1 &ms1,const MS2 &ms2) throw(); 01964 template <class MS1,class MS2> friend bool _msmsless(const MS1 &ms1,const MS2 &ms2) throw(); 01965 template <class MS1,class MS2> friend bool _msmsleq(const MS1 &ms1,const MS2 &ms2) throw(); 01966 template <class MS> friend std::ostream &_msout(std::ostream &s,const MS &r) throw(); 01967 template <class MS> friend std::istream &_msin(std::istream &s,MS &r) throw(); 01968 01969 // Real 01970 01971 //--- Real ------------ matrix-scalar ----------- 01972 01973 01974 //--- Real ------------ matrix-vector ----------- 01975 01976 //--- Real ------------ matrix-matrix ----------- 01977 01978 // interval 01979 01980 //--- interval ------------ matrix-scalar ----------- 01981 01982 01983 //--- interval ------------ matrix-vector ----------- 01984 01985 //--- interval ------------ matrix-matrix ----------- 01986 01987 // complex 01988 01989 //--- complex ------------ matrix-scalar ----------- 01990 01991 01992 //--- complex ------------ matrix-vector ----------- 01993 01994 01995 //--- complex ------------ matrix-matrix ----------- 01996 01997 01998 #endif 01999 02000 //--------------- Konstruktoren ---------------------------------------- 02001 02003 explicit INLINE cimatrix_slice(cimatrix &a,const int &l1,const int &u1,const int &l2, const int &u2) throw():dat(a.dat),offset1(l1-a.lb1),offset2(l2-a.lb2),mxsize(a.xsize),mysize(a.ysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { } 02005 explicit INLINE cimatrix_slice(cimatrix_slice &a,const int &l1,const int &u1,const int &l2, const int &u2) throw():dat(a.dat),offset1(a.offset1+l1-a.start1),offset2(a.offset2+l2-a.start2),mxsize(a.mxsize),mysize(a.mysize),start1(l1),end1(u1),start2(l2),end2(u2),sxsize(u2-l2+1),sysize(u1-l1+1) { } 02006 public: 02008 INLINE cimatrix_slice(const cimatrix_slice &ms) throw():dat(ms.dat),offset1(ms.offset1),offset2(ms.offset2),mxsize(ms.mxsize),mysize(ms.mysize),start1(ms.start1),end1(ms.end1),start2(ms.start2),end2(ms.end2),sxsize(ms.sxsize),sysize(ms.sysize) { } 02009 public: 02010 02011 //---------------- Standardfunktionen ----------------------------------- 02012 02013 friend INLINE civector::civector(const cimatrix_slice &sl) 02014 #if(CXSC_INDEX_CHECK) 02015 throw(ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ); 02016 #else 02017 throw(); 02018 #endif 02019 friend INLINE cimatrix::cimatrix(const cimatrix_slice &) throw(); 02021 INLINE cimatrix_slice &operator =(const cimatrix &m) 02022 #if(CXSC_INDEX_CHECK) 02023 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02024 #else 02025 throw(); 02026 #endif 02027 02028 INLINE cimatrix_slice &operator =(const cimatrix_slice &ms) 02029 #if(CXSC_INDEX_CHECK) 02030 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02031 #else 02032 throw(); 02033 #endif 02034 02035 INLINE cimatrix_slice &operator =(const cinterval &r) throw(); 02037 INLINE cimatrix_slice &operator =(const scimatrix &v); 02039 INLINE cimatrix_slice &operator =(const scimatrix_subv &v); 02041 INLINE cimatrix_slice &operator =(const scimatrix_slice &v); 02043 INLINE cimatrix_slice &operator =(const civector &v) 02044 #if(CXSC_INDEX_CHECK) 02045 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02046 #else 02047 throw(); 02048 #endif 02049 02050 INLINE cimatrix_slice &operator =(const civector_slice &v) 02051 #if(CXSC_INDEX_CHECK) 02052 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02053 #else 02054 throw(); 02055 #endif 02056 02057 INLINE cimatrix_slice &operator =(const cimatrix_subv &v) 02058 #if(CXSC_INDEX_CHECK) 02059 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02060 #else 02061 throw(); 02062 #endif 02063 // real 02065 INLINE cimatrix_slice &operator =(const srmatrix &v); 02067 INLINE cimatrix_slice &operator =(const srmatrix_subv &v); 02069 INLINE cimatrix_slice &operator =(const srmatrix_slice &v); 02071 INLINE cimatrix_slice &operator =(const rmatrix &m) 02072 #if(CXSC_INDEX_CHECK) 02073 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02074 #else 02075 throw(); 02076 #endif 02077 02078 INLINE cimatrix_slice &operator =(const rmatrix_slice &ms) 02079 #if(CXSC_INDEX_CHECK) 02080 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02081 #else 02082 throw(); 02083 #endif 02084 02085 INLINE cimatrix_slice &operator =(const real &r) throw(); 02087 INLINE cimatrix_slice &operator =(const rvector &v) 02088 #if(CXSC_INDEX_CHECK) 02089 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02090 #else 02091 throw(); 02092 #endif 02093 02094 INLINE cimatrix_slice &operator =(const rvector_slice &v) 02095 #if(CXSC_INDEX_CHECK) 02096 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02097 #else 02098 throw(); 02099 #endif 02100 02101 INLINE cimatrix_slice &operator =(const rmatrix_subv &v) 02102 #if(CXSC_INDEX_CHECK) 02103 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02104 #else 02105 throw(); 02106 #endif 02107 02108 // interval 02110 INLINE cimatrix_slice &operator =(const simatrix_subv &v); 02112 INLINE cimatrix_slice &operator =(const simatrix &v); 02114 INLINE cimatrix_slice &operator =(const simatrix_slice &v); 02116 INLINE cimatrix_slice &operator =(const imatrix &m) 02117 #if(CXSC_INDEX_CHECK) 02118 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02119 #else 02120 throw(); 02121 #endif 02122 02123 INLINE cimatrix_slice &operator =(const imatrix_slice &ms) 02124 #if(CXSC_INDEX_CHECK) 02125 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02126 #else 02127 throw(); 02128 #endif 02129 02130 INLINE cimatrix_slice &operator =(const interval &r) throw(); 02132 INLINE cimatrix_slice &operator =(const ivector &v) 02133 #if(CXSC_INDEX_CHECK) 02134 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02135 #else 02136 throw(); 02137 #endif 02138 02139 INLINE cimatrix_slice &operator =(const ivector_slice &v) 02140 #if(CXSC_INDEX_CHECK) 02141 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02142 #else 02143 throw(); 02144 #endif 02145 02146 INLINE cimatrix_slice &operator =(const imatrix_subv &v) 02147 #if(CXSC_INDEX_CHECK) 02148 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02149 #else 02150 throw(); 02151 #endif 02152 02153 // complex 02155 INLINE cimatrix_slice &operator =(const scmatrix &v); 02157 INLINE cimatrix_slice &operator =(const scmatrix_subv &v); 02159 INLINE cimatrix_slice &operator =(const scmatrix_slice &v); 02161 INLINE cimatrix_slice &operator =(const cmatrix &m) 02162 #if(CXSC_INDEX_CHECK) 02163 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02164 #else 02165 throw(); 02166 #endif 02167 02168 INLINE cimatrix_slice &operator =(const cmatrix_slice &ms) 02169 #if(CXSC_INDEX_CHECK) 02170 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02171 #else 02172 throw(); 02173 #endif 02174 02175 INLINE cimatrix_slice &operator =(const complex &r) throw(); 02177 INLINE cimatrix_slice &operator =(const cvector &v) 02178 #if(CXSC_INDEX_CHECK) 02179 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02180 #else 02181 throw(); 02182 #endif 02183 02184 INLINE cimatrix_slice &operator =(const cvector_slice &v) 02185 #if(CXSC_INDEX_CHECK) 02186 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02187 #else 02188 throw(); 02189 #endif 02190 02191 INLINE cimatrix_slice &operator =(const cmatrix_subv &v) 02192 #if(CXSC_INDEX_CHECK) 02193 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02194 #else 02195 throw(); 02196 #endif 02197 02199 INLINE cimatrix_subv operator [](const int &i) 02200 #if(CXSC_INDEX_CHECK) 02201 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 02202 #else 02203 throw(); 02204 #endif 02205 02206 INLINE cimatrix_subv operator [](const cxscmatrix_column &i) 02207 #if(CXSC_INDEX_CHECK) 02208 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 02209 #else 02210 throw(); 02211 #endif 02212 02214 INLINE cimatrix_subv operator [](const int &i) const 02215 #if(CXSC_INDEX_CHECK) 02216 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 02217 #else 02218 throw(); 02219 #endif 02220 02221 INLINE cimatrix_subv operator [](const cxscmatrix_column &i) const 02222 #if(CXSC_INDEX_CHECK) 02223 throw(ERROR_CIMATRIX_ROW_OR_COL_NOT_IN_MAT); 02224 #else 02225 throw(); 02226 #endif 02227 02229 INLINE cimatrix_slice &operator ()() throw() { return *this; } 02231 INLINE cimatrix_slice operator ()(const int &m, const int &n) 02232 #if(CXSC_INDEX_CHECK) 02233 throw(ERROR_CIMATRIX_SUB_ARRAY_TOO_BIG); 02234 #else 02235 throw(); 02236 #endif 02237 02238 INLINE cimatrix_slice operator ()(const int &m1, const int &m2, const int &n1, const int &n2) 02239 #if(CXSC_INDEX_CHECK) 02240 throw(ERROR_CIMATRIX_SUB_ARRAY_TOO_BIG); 02241 #else 02242 throw(); 02243 #endif 02244 INLINE operator void*() throw(); 02245 02247 INLINE cimatrix_slice &operator +=(const cinterval &c) throw(); 02249 INLINE cimatrix_slice &operator -=(const cinterval &c) throw(); 02251 INLINE cimatrix_slice &operator *=(const cinterval &c) throw(); 02253 INLINE cimatrix_slice &operator /=(const cinterval &c) throw(); 02255 INLINE cimatrix_slice &operator +=(const scimatrix &m1); 02257 INLINE cimatrix_slice &operator +=(const scimatrix_slice &m1); 02259 INLINE cimatrix_slice &operator -=(const scimatrix &m1); 02261 INLINE cimatrix_slice &operator -=(const scimatrix_slice &m1); 02263 INLINE cimatrix_slice &operator |=(const scimatrix &m1); 02265 INLINE cimatrix_slice &operator |=(const scimatrix_slice &m1); 02267 INLINE cimatrix_slice &operator &=(const scimatrix &m1); 02269 INLINE cimatrix_slice &operator &=(const scimatrix_slice &m1); 02271 INLINE cimatrix_slice &operator *=(const scimatrix &m1); 02273 INLINE cimatrix_slice &operator *=(const scimatrix_slice &m1); 02274 02276 INLINE cimatrix_slice &operator +=(const cimatrix &m1) 02277 #if(CXSC_INDEX_CHECK) 02278 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02279 #else 02280 throw(); 02281 #endif 02282 02283 INLINE cimatrix_slice &operator +=(const cimatrix_slice &ms2) 02284 #if(CXSC_INDEX_CHECK) 02285 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02286 #else 02287 throw(); 02288 #endif 02289 02290 INLINE cimatrix_slice &operator -=(const cimatrix &m1) 02291 #if(CXSC_INDEX_CHECK) 02292 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02293 #else 02294 throw(); 02295 #endif 02296 02297 INLINE cimatrix_slice &operator -=(const cimatrix_slice &ms2) 02298 #if(CXSC_INDEX_CHECK) 02299 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02300 #else 02301 throw(); 02302 #endif 02303 02304 INLINE cimatrix_slice &operator |=(const cimatrix &m1) 02305 #if(CXSC_INDEX_CHECK) 02306 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02307 #else 02308 throw(); 02309 #endif 02310 02311 INLINE cimatrix_slice &operator |=(const cimatrix_slice &ms2) 02312 #if(CXSC_INDEX_CHECK) 02313 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02314 #else 02315 throw(); 02316 #endif 02317 02318 INLINE cimatrix_slice &operator &=(const cimatrix &m1) 02319 #if(CXSC_INDEX_CHECK) 02320 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02321 #else 02322 throw(); 02323 #endif 02324 02325 INLINE cimatrix_slice &operator &=(const cimatrix_slice &ms2) 02326 #if(CXSC_INDEX_CHECK) 02327 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02328 #else 02329 throw(); 02330 #endif 02331 02332 INLINE cimatrix_slice &operator *=(const cimatrix &m) 02333 #if(CXSC_INDEX_CHECK) 02334 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02335 #else 02336 throw(); 02337 #endif 02338 02339 INLINE cimatrix_slice &operator *=(const cimatrix_slice &ms2) 02340 #if(CXSC_INDEX_CHECK) 02341 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02342 #else 02343 throw(); 02344 #endif 02345 02347 INLINE cimatrix_slice &operator +=(const real &c) throw(); 02349 INLINE cimatrix_slice &operator -=(const real &c) throw(); 02351 INLINE cimatrix_slice &operator *=(const real &c) throw(); 02353 INLINE cimatrix_slice &operator /=(const real &c) throw(); 02355 INLINE cimatrix_slice &operator +=(const srmatrix &m1); 02357 INLINE cimatrix_slice &operator +=(const srmatrix_slice &m1); 02359 INLINE cimatrix_slice &operator -=(const srmatrix &m1); 02361 INLINE cimatrix_slice &operator -=(const srmatrix_slice &m1); 02363 INLINE cimatrix_slice &operator |=(const srmatrix &m1); 02365 INLINE cimatrix_slice &operator |=(const srmatrix_slice &m1); 02367 INLINE cimatrix_slice &operator &=(const srmatrix &m1); 02369 INLINE cimatrix_slice &operator &=(const srmatrix_slice &m1); 02371 INLINE cimatrix_slice &operator *=(const srmatrix &m1); 02373 INLINE cimatrix_slice &operator *=(const srmatrix_slice &m1); 02374 02376 INLINE cimatrix_slice &operator +=(const rmatrix_slice &ms2) 02377 #if(CXSC_INDEX_CHECK) 02378 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02379 #else 02380 throw(); 02381 #endif 02382 02383 INLINE cimatrix_slice &operator +=(const rmatrix &m1) 02384 #if(CXSC_INDEX_CHECK) 02385 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02386 #else 02387 throw(); 02388 #endif 02389 02390 INLINE cimatrix_slice &operator -=(const rmatrix &m1) 02391 #if(CXSC_INDEX_CHECK) 02392 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02393 #else 02394 throw(); 02395 #endif 02396 02397 INLINE cimatrix_slice &operator -=(const rmatrix_slice &ms2) 02398 #if(CXSC_INDEX_CHECK) 02399 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02400 #else 02401 throw(); 02402 #endif 02403 02404 INLINE cimatrix_slice &operator |=(const rmatrix &m1) 02405 #if(CXSC_INDEX_CHECK) 02406 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02407 #else 02408 throw(); 02409 #endif 02410 02411 INLINE cimatrix_slice &operator |=(const rmatrix_slice &ms2) 02412 #if(CXSC_INDEX_CHECK) 02413 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02414 #else 02415 throw(); 02416 #endif 02417 02418 INLINE cimatrix_slice &operator &=(const rmatrix &m1) 02419 #if(CXSC_INDEX_CHECK) 02420 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02421 #else 02422 throw(); 02423 #endif 02424 02425 INLINE cimatrix_slice &operator &=(const rmatrix_slice &ms2) 02426 #if(CXSC_INDEX_CHECK) 02427 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02428 #else 02429 throw(); 02430 #endif 02431 02432 INLINE cimatrix_slice &operator *=(const rmatrix &m) 02433 #if(CXSC_INDEX_CHECK) 02434 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02435 #else 02436 throw(); 02437 #endif 02438 02439 INLINE cimatrix_slice &operator *=(const rmatrix_slice &ms2) 02440 #if(CXSC_INDEX_CHECK) 02441 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02442 #else 02443 throw(); 02444 #endif 02445 02447 INLINE cimatrix_slice &operator +=(const complex &c) throw(); 02449 INLINE cimatrix_slice &operator -=(const complex &c) throw(); 02451 INLINE cimatrix_slice &operator *=(const complex &c) throw(); 02453 INLINE cimatrix_slice &operator /=(const complex &c) throw(); 02455 INLINE cimatrix_slice &operator +=(const scmatrix &m1); 02457 INLINE cimatrix_slice &operator +=(const scmatrix_slice &m1); 02459 INLINE cimatrix_slice &operator -=(const scmatrix &m1); 02461 INLINE cimatrix_slice &operator -=(const scmatrix_slice &m1); 02463 INLINE cimatrix_slice &operator |=(const scmatrix &m1); 02465 INLINE cimatrix_slice &operator |=(const scmatrix_slice &m1); 02467 INLINE cimatrix_slice &operator &=(const scmatrix &m1); 02469 INLINE cimatrix_slice &operator &=(const scmatrix_slice &m1); 02471 INLINE cimatrix_slice &operator *=(const scmatrix &m1); 02473 INLINE cimatrix_slice &operator *=(const scmatrix_slice &m1); 02474 02476 INLINE cimatrix_slice &operator +=(const cmatrix_slice &ms2) 02477 #if(CXSC_INDEX_CHECK) 02478 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02479 #else 02480 throw(); 02481 #endif 02482 02483 INLINE cimatrix_slice &operator +=(const cmatrix &m1) 02484 #if(CXSC_INDEX_CHECK) 02485 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02486 #else 02487 throw(); 02488 #endif 02489 02490 INLINE cimatrix_slice &operator -=(const cmatrix &m1) 02491 #if(CXSC_INDEX_CHECK) 02492 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02493 #else 02494 throw(); 02495 #endif 02496 02497 INLINE cimatrix_slice &operator -=(const cmatrix_slice &ms2) 02498 #if(CXSC_INDEX_CHECK) 02499 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02500 #else 02501 throw(); 02502 #endif 02503 02504 INLINE cimatrix_slice &operator |=(const cmatrix &m1) 02505 #if(CXSC_INDEX_CHECK) 02506 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02507 #else 02508 throw(); 02509 #endif 02510 02511 INLINE cimatrix_slice &operator |=(const cmatrix_slice &ms2) 02512 #if(CXSC_INDEX_CHECK) 02513 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02514 #else 02515 throw(); 02516 #endif 02517 02518 INLINE cimatrix_slice &operator &=(const cmatrix &m1) 02519 #if(CXSC_INDEX_CHECK) 02520 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02521 #else 02522 throw(); 02523 #endif 02524 02525 INLINE cimatrix_slice &operator &=(const cmatrix_slice &ms2) 02526 #if(CXSC_INDEX_CHECK) 02527 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02528 #else 02529 throw(); 02530 #endif 02531 02532 INLINE cimatrix_slice &operator *=(const cmatrix &m) 02533 #if(CXSC_INDEX_CHECK) 02534 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02535 #else 02536 throw(); 02537 #endif 02538 02539 INLINE cimatrix_slice &operator *=(const cmatrix_slice &ms2) 02540 #if(CXSC_INDEX_CHECK) 02541 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02542 #else 02543 throw(); 02544 #endif 02545 02547 INLINE cimatrix_slice &operator +=(const interval &c) throw(); 02549 INLINE cimatrix_slice &operator -=(const interval &c) throw(); 02551 INLINE cimatrix_slice &operator *=(const interval &c) throw(); 02553 INLINE cimatrix_slice &operator /=(const interval &c) throw(); 02555 INLINE cimatrix_slice &operator +=(const simatrix &m1); 02557 INLINE cimatrix_slice &operator +=(const simatrix_slice &m1); 02559 INLINE cimatrix_slice &operator -=(const simatrix &m1); 02561 INLINE cimatrix_slice &operator -=(const simatrix_slice &m1); 02563 INLINE cimatrix_slice &operator |=(const simatrix &m1); 02565 INLINE cimatrix_slice &operator |=(const simatrix_slice &m1); 02567 INLINE cimatrix_slice &operator &=(const simatrix &m1); 02569 INLINE cimatrix_slice &operator &=(const simatrix_slice &m1); 02571 INLINE cimatrix_slice &operator *=(const simatrix &m1); 02573 INLINE cimatrix_slice &operator *=(const simatrix_slice &m1); 02574 02576 INLINE cimatrix_slice &operator +=(const imatrix_slice &ms2) 02577 #if(CXSC_INDEX_CHECK) 02578 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02579 #else 02580 throw(); 02581 #endif 02582 02583 INLINE cimatrix_slice &operator +=(const imatrix &m1) 02584 #if(CXSC_INDEX_CHECK) 02585 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02586 #else 02587 throw(); 02588 #endif 02589 02590 INLINE cimatrix_slice &operator -=(const imatrix &m1) 02591 #if(CXSC_INDEX_CHECK) 02592 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02593 #else 02594 throw(); 02595 #endif 02596 02597 INLINE cimatrix_slice &operator -=(const imatrix_slice &ms2) 02598 #if(CXSC_INDEX_CHECK) 02599 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02600 #else 02601 throw(); 02602 #endif 02603 02604 INLINE cimatrix_slice &operator |=(const imatrix &m1) 02605 #if(CXSC_INDEX_CHECK) 02606 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02607 #else 02608 throw(); 02609 #endif 02610 02611 INLINE cimatrix_slice &operator |=(const imatrix_slice &ms2) 02612 #if(CXSC_INDEX_CHECK) 02613 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02614 #else 02615 throw(); 02616 #endif 02617 02618 INLINE cimatrix_slice &operator &=(const imatrix &m1) 02619 #if(CXSC_INDEX_CHECK) 02620 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02621 #else 02622 throw(); 02623 #endif 02624 02625 INLINE cimatrix_slice &operator &=(const imatrix_slice &ms2) 02626 #if(CXSC_INDEX_CHECK) 02627 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02628 #else 02629 throw(); 02630 #endif 02631 02632 INLINE cimatrix_slice &operator *=(const imatrix &m) 02633 #if(CXSC_INDEX_CHECK) 02634 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02635 #else 02636 throw(); 02637 #endif 02638 02639 INLINE cimatrix_slice &operator *=(const imatrix_slice &ms2) 02640 #if(CXSC_INDEX_CHECK) 02641 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02642 #else 02643 throw(); 02644 #endif 02645 02646 //#else 02647 //#endif 02648 }; 02649 02650 //================================================================ 02651 //====================== Subvector Functions ===================== 02652 02653 //=======================Vector / Scalar ========================= 02654 02656 INLINE civector operator /(const cimatrix_subv &rv, const cinterval &s) throw(); 02658 INLINE civector operator *(const cimatrix_subv &rv, const cinterval &s) throw(); 02660 INLINE civector operator *(const cinterval &s, const cimatrix_subv &rv) throw(); 02662 INLINE ivector abs(const cimatrix_subv &mv) throw(); 02664 INLINE cvector diam(const cimatrix_subv &mv) throw(); 02666 INLINE cvector mid(const cimatrix_subv &mv) throw(); 02668 INLINE cvector Inf(const cimatrix_subv &mv) throw(); 02670 INLINE cvector Sup(const cimatrix_subv &mv) throw(); 02672 INLINE ivector Im(const cimatrix_subv &mv) throw(); 02674 INLINE ivector Re(const cimatrix_subv &mv) throw(); 02676 INLINE rmatrix SupRe(const cimatrix &v) throw(); 02678 INLINE rmatrix SupIm(const cimatrix &v) throw(); 02680 INLINE rmatrix InfRe(const cimatrix &v) throw(); 02682 INLINE rmatrix InfIm(const cimatrix &v) throw(); 02684 INLINE rmatrix SupRe(const cimatrix_slice &v) throw(); 02686 INLINE rmatrix SupIm(const cimatrix_slice &v) throw(); 02688 INLINE rmatrix InfRe(const cimatrix_slice &v) throw(); 02690 INLINE rmatrix InfIm(const cimatrix_slice &v) throw(); 02692 INLINE cimatrix_subv &SetInf(cimatrix_subv &iv,const cvector &rv) 02693 #if(CXSC_INDEX_CHECK) 02694 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02695 #else 02696 throw(); 02697 #endif 02698 02699 INLINE cimatrix_subv &SetSup(cimatrix_subv &iv,const cvector &rv) 02700 #if(CXSC_INDEX_CHECK) 02701 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02702 #else 02703 throw(); 02704 #endif 02705 02706 INLINE cimatrix_subv &UncheckedSetInf(cimatrix_subv &iv,const cvector &rv) 02707 #if(CXSC_INDEX_CHECK) 02708 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02709 #else 02710 throw(); 02711 #endif 02712 02713 INLINE cimatrix_subv &UncheckedSetSup(cimatrix_subv &iv,const cvector &rv) 02714 #if(CXSC_INDEX_CHECK) 02715 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02716 #else 02717 throw(); 02718 #endif 02719 02720 INLINE cimatrix_subv &SetIm(cimatrix_subv &iv,const ivector &rv) 02721 #if(CXSC_INDEX_CHECK) 02722 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02723 #else 02724 throw(); 02725 #endif 02726 02727 INLINE cimatrix_subv &SetRe(cimatrix_subv &iv,const ivector &rv) 02728 #if(CXSC_INDEX_CHECK) 02729 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 02730 #else 02731 throw(); 02732 #endif 02733 02735 INLINE cimatrix_subv &SetSup(cimatrix_subv &iv,const complex &r) throw(); 02737 INLINE cimatrix_subv &SetInf(cimatrix_subv &iv,const complex &r) throw(); 02739 INLINE cimatrix_subv &UncheckedSetSup(cimatrix_subv &iv,const complex &r) throw(); 02741 INLINE cimatrix_subv &SetUncheckedInf(cimatrix_subv &iv,const complex &r) throw(); 02743 INLINE cimatrix_subv &SetRe(cimatrix_subv &iv,const interval &r) throw(); 02745 INLINE cimatrix_subv &SetIm(cimatrix_subv &iv,const interval &r) throw(); 02746 02747 //======================== Vector / Vector ======================== 02748 02749 02751 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const cimatrix_subv &rv2) 02752 #if(CXSC_INDEX_CHECK) 02753 throw(OP_WITH_WRONG_DIM); 02754 #else 02755 throw(); 02756 #endif 02757 02758 void accumulate(cidotprecision &dp, const civector & rv1, const cimatrix_subv &rv2) 02759 #if(CXSC_INDEX_CHECK) 02760 throw(OP_WITH_WRONG_DIM); 02761 #else 02762 throw(); 02763 #endif 02764 02765 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const civector &rv2) 02766 #if(CXSC_INDEX_CHECK) 02767 throw(OP_WITH_WRONG_DIM); 02768 #else 02769 throw(); 02770 #endif 02771 02772 void accumulate(cidotprecision &dp, const civector_slice & sl1, const cimatrix_subv &rv2) 02773 #if(CXSC_INDEX_CHECK) 02774 throw(OP_WITH_WRONG_DIM); 02775 #else 02776 throw(); 02777 #endif 02778 02779 void accumulate(cidotprecision &dp, const civector_slice & sl1, const rmatrix_subv &rv2) 02780 #if(CXSC_INDEX_CHECK) 02781 throw(OP_WITH_WRONG_DIM); 02782 #else 02783 throw(); 02784 #endif 02785 02786 void accumulate(cidotprecision &dp, const civector_slice & sl1, const cmatrix_subv &rv2) 02787 #if(CXSC_INDEX_CHECK) 02788 throw(OP_WITH_WRONG_DIM); 02789 #else 02790 throw(); 02791 #endif 02792 02794 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const civector_slice &sl2) 02795 #if(CXSC_INDEX_CHECK) 02796 throw(OP_WITH_WRONG_DIM); 02797 #else 02798 throw(); 02799 #endif 02800 02802 INLINE cinterval operator *(const cimatrix_subv & rv1, const cimatrix_subv &rv2) 02803 #if(CXSC_INDEX_CHECK) 02804 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02805 #else 02806 throw(); 02807 #endif 02808 02809 INLINE cinterval operator *(const civector & rv1, const cimatrix_subv &rv2) 02810 #if(CXSC_INDEX_CHECK) 02811 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02812 #else 02813 throw(); 02814 #endif 02815 02816 INLINE cinterval operator *(const cimatrix_subv &rv1,const civector &rv2) 02817 #if(CXSC_INDEX_CHECK) 02818 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02819 #else 02820 throw(); 02821 #endif 02822 02823 INLINE cinterval operator *(const civector_slice &sl,const cimatrix_subv &sv) 02824 #if(CXSC_INDEX_CHECK) 02825 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02826 #else 02827 throw(); 02828 #endif 02829 02830 INLINE cinterval operator *(const cimatrix_subv &mv,const civector_slice &vs) 02831 #if(CXSC_INDEX_CHECK) 02832 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02833 #else 02834 throw(); 02835 #endif 02836 02838 INLINE civector operator +(const cimatrix_subv & rv1, const cimatrix_subv &rv2) 02839 #if(CXSC_INDEX_CHECK) 02840 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02841 #else 02842 throw(); 02843 #endif 02844 02845 INLINE civector operator +(const cimatrix_subv &rv1,const civector &rv2) 02846 #if(CXSC_INDEX_CHECK) 02847 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02848 #else 02849 throw(); 02850 #endif 02851 02852 INLINE civector operator +(const civector & rv1, const cimatrix_subv &rv2) 02853 #if(CXSC_INDEX_CHECK) 02854 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02855 #else 02856 throw(); 02857 #endif 02858 02859 INLINE civector operator +(const civector_slice &sl,const cimatrix_subv &mv) 02860 #if(CXSC_INDEX_CHECK) 02861 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02862 #else 02863 throw(); 02864 #endif 02865 02866 INLINE civector operator +(const cimatrix_subv &mv,const civector_slice &sl) 02867 #if(CXSC_INDEX_CHECK) 02868 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02869 #else 02870 throw(); 02871 #endif 02872 02874 INLINE civector operator -(const cimatrix_subv & rv1, const cimatrix_subv &rv2) 02875 #if(CXSC_INDEX_CHECK) 02876 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02877 #else 02878 throw(); 02879 #endif 02880 02881 INLINE civector operator -(const civector & rv1, const cimatrix_subv &rv2) 02882 #if(CXSC_INDEX_CHECK) 02883 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02884 #else 02885 throw(); 02886 #endif 02887 02888 INLINE civector operator -(const cimatrix_subv &rv1,const civector &rv2) 02889 #if(CXSC_INDEX_CHECK) 02890 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02891 #else 02892 throw(); 02893 #endif 02894 02895 INLINE civector operator -(const civector_slice &sl,const cimatrix_subv &mv) 02896 #if(CXSC_INDEX_CHECK) 02897 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02898 #else 02899 throw(); 02900 #endif 02901 02902 INLINE civector operator -(const cimatrix_subv &mv,const civector_slice &sl) 02903 #if(CXSC_INDEX_CHECK) 02904 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM); 02905 #else 02906 throw(); 02907 #endif 02908 02909 // real 02910 02912 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const rmatrix_subv &rv2) 02913 #if(CXSC_INDEX_CHECK) 02914 throw(OP_WITH_WRONG_DIM); 02915 #else 02916 throw(); 02917 #endif 02918 02919 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const rvector_slice &sl2) 02920 #if(CXSC_INDEX_CHECK) 02921 throw(OP_WITH_WRONG_DIM); 02922 #else 02923 throw(); 02924 #endif 02925 02926 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const rvector &rv2) 02927 #if(CXSC_INDEX_CHECK) 02928 throw(OP_WITH_WRONG_DIM); 02929 #else 02930 throw(); 02931 #endif 02932 02933 void accumulate(cidotprecision &dp, const rvector & rv1, const cimatrix_subv &rv2) 02934 #if(CXSC_INDEX_CHECK) 02935 throw(OP_WITH_WRONG_DIM); 02936 #else 02937 throw(); 02938 #endif 02939 02940 void accumulate(cidotprecision &dp, const rmatrix_subv & rv1, const cimatrix_subv &rv2) 02941 #if(CXSC_INDEX_CHECK) 02942 throw(OP_WITH_WRONG_DIM); 02943 #else 02944 throw(); 02945 #endif 02946 02947 void accumulate(cidotprecision &dp, const rvector_slice & sl1, const cimatrix_subv &rv2) 02948 #if(CXSC_INDEX_CHECK) 02949 throw(OP_WITH_WRONG_DIM); 02950 #else 02951 throw(); 02952 #endif 02953 02954 // complex 02955 02957 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const cmatrix_subv &rv2) 02958 #if(CXSC_INDEX_CHECK) 02959 throw(OP_WITH_WRONG_DIM); 02960 #else 02961 throw(); 02962 #endif 02963 02964 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const cvector_slice &sl2) 02965 #if(CXSC_INDEX_CHECK) 02966 throw(OP_WITH_WRONG_DIM); 02967 #else 02968 throw(); 02969 #endif 02970 02971 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const cvector &rv2) 02972 #if(CXSC_INDEX_CHECK) 02973 throw(OP_WITH_WRONG_DIM); 02974 #else 02975 throw(); 02976 #endif 02977 02978 void accumulate(cidotprecision &dp, const cvector & rv1, const cimatrix_subv &rv2) 02979 #if(CXSC_INDEX_CHECK) 02980 throw(OP_WITH_WRONG_DIM); 02981 #else 02982 throw(); 02983 #endif 02984 02985 void accumulate(cidotprecision &dp, const cmatrix_subv & rv1, const cimatrix_subv &rv2) 02986 #if(CXSC_INDEX_CHECK) 02987 throw(OP_WITH_WRONG_DIM); 02988 #else 02989 throw(); 02990 #endif 02991 02992 void accumulate(cidotprecision &dp, const cvector_slice & sl1, const cimatrix_subv &rv2) 02993 #if(CXSC_INDEX_CHECK) 02994 throw(OP_WITH_WRONG_DIM); 02995 #else 02996 throw(); 02997 #endif 02998 02999 // interval 03000 03002 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const imatrix_subv &rv2) 03003 #if(CXSC_INDEX_CHECK) 03004 throw(OP_WITH_WRONG_DIM); 03005 #else 03006 throw(); 03007 #endif 03008 03009 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const ivector_slice &sl2) 03010 #if(CXSC_INDEX_CHECK) 03011 throw(OP_WITH_WRONG_DIM); 03012 #else 03013 throw(); 03014 #endif 03015 03016 void accumulate(cidotprecision &dp, const cimatrix_subv & rv1, const ivector &rv2) 03017 #if(CXSC_INDEX_CHECK) 03018 throw(OP_WITH_WRONG_DIM); 03019 #else 03020 throw(); 03021 #endif 03022 03023 void accumulate(cidotprecision &dp, const ivector & rv1, const cimatrix_subv &rv2) 03024 #if(CXSC_INDEX_CHECK) 03025 throw(OP_WITH_WRONG_DIM); 03026 #else 03027 throw(); 03028 #endif 03029 03030 void accumulate(cidotprecision &dp, const imatrix_subv & rv1, const cimatrix_subv &rv2) 03031 #if(CXSC_INDEX_CHECK) 03032 throw(OP_WITH_WRONG_DIM); 03033 #else 03034 throw(); 03035 #endif 03036 03037 void accumulate(cidotprecision &dp, const ivector_slice & sl1, const cimatrix_subv &rv2) 03038 #if(CXSC_INDEX_CHECK) 03039 throw(OP_WITH_WRONG_DIM); 03040 #else 03041 throw(); 03042 #endif 03043 03044 void accumulate(cidotprecision &dp, const cmatrix_subv & rv1, const imatrix_subv &rv2) 03045 #if(CXSC_INDEX_CHECK) 03046 throw(OP_WITH_WRONG_DIM); 03047 #else 03048 throw(); 03049 #endif 03050 03051 void accumulate(cidotprecision &dp, const imatrix_subv & rv1, const cmatrix_subv &rv2) 03052 #if(CXSC_INDEX_CHECK) 03053 throw(OP_WITH_WRONG_DIM); 03054 #else 03055 throw(); 03056 #endif 03057 03058 03059 //==================================================================== 03060 //===================== Matrix Functions ============================= 03061 03063 INLINE cimatrix _imatrix(const cimatrix &rm) throw(); 03065 INLINE cimatrix _imatrix(const civector &v) throw(); 03067 INLINE cimatrix _imatrix(const civector_slice &v) throw(); 03069 INLINE cimatrix _imatrix(const cinterval &r) throw(); 03070 03072 INLINE int Lb(const cimatrix &rm, const int &i) 03073 #if(CXSC_INDEX_CHECK) 03074 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03075 #else 03076 throw(); 03077 #endif 03078 03079 INLINE int Ub(const cimatrix &rm, const int &i) 03080 #if(CXSC_INDEX_CHECK) 03081 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03082 #else 03083 throw(); 03084 #endif 03085 03086 INLINE int Lb(const cimatrix_slice &rm, const int &i) 03087 #if(CXSC_INDEX_CHECK) 03088 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03089 #else 03090 throw(); 03091 #endif 03092 03093 INLINE int Ub(const cimatrix_slice &rm, const int &i) 03094 #if(CXSC_INDEX_CHECK) 03095 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03096 #else 03097 throw(); 03098 #endif 03099 03100 INLINE cimatrix &SetLb(cimatrix &m, const int &i,const int &j) 03101 #if(CXSC_INDEX_CHECK) 03102 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03103 #else 03104 throw(); 03105 #endif 03106 03107 INLINE cimatrix &SetUb(cimatrix &m, const int &i,const int &j) 03108 #if(CXSC_INDEX_CHECK) 03109 throw(ERROR_CIMATRIX_WRONG_ROW_OR_COL); 03110 #else 03111 throw(); 03112 #endif 03113 03114 INLINE void Resize(cimatrix &A) throw(); 03116 INLINE void Resize(cimatrix &A,const int &m, const int &n) 03117 #if(CXSC_INDEX_CHECK) 03118 throw(ERROR_CIMATRIX_WRONG_BOUNDARIES); 03119 #else 03120 throw(); 03121 #endif 03122 03123 INLINE void Resize(cimatrix &A,const int &m1, const int &m2,const int &n1,const int &n2) 03124 #if(CXSC_INDEX_CHECK) 03125 throw(ERROR_CIMATRIX_WRONG_BOUNDARIES); 03126 #else 03127 throw(); 03128 #endif 03129 03131 INLINE imatrix abs(const cimatrix &m) throw(); 03133 INLINE imatrix abs(const cimatrix_slice &ms) throw(); 03135 INLINE cmatrix diam(const cimatrix &m) throw(); 03137 INLINE cmatrix diam(const cimatrix_slice &m) throw(); 03139 INLINE cmatrix mid(const cimatrix &m) throw(); 03141 INLINE cmatrix mid(const cimatrix_slice &m) throw(); 03143 INLINE cmatrix Inf(const cimatrix &m) throw(); 03145 INLINE cmatrix Sup(const cimatrix &m) throw(); 03147 INLINE cmatrix Inf(const cimatrix_slice &m) throw(); 03149 INLINE cmatrix Sup(const cimatrix_slice &m) throw(); 03151 INLINE cimatrix &SetInf(cimatrix &cm,const cmatrix &rm) 03152 #if(CXSC_INDEX_CHECK) 03153 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03154 #else 03155 throw(); 03156 #endif 03157 03158 INLINE cimatrix_slice &SetInf(cimatrix_slice &cm,const cmatrix &rm) 03159 #if(CXSC_INDEX_CHECK) 03160 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03161 #else 03162 throw(); 03163 #endif 03164 03165 INLINE cimatrix &SetInf(cimatrix &cm,const cmatrix_slice &rm) 03166 #if(CXSC_INDEX_CHECK) 03167 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03168 #else 03169 throw(); 03170 #endif 03171 03172 INLINE cimatrix_slice &SetInf(cimatrix_slice &cm,const cmatrix_slice &rm) 03173 #if(CXSC_INDEX_CHECK) 03174 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03175 #else 03176 throw(); 03177 #endif 03178 03179 INLINE cimatrix &SetSup(cimatrix &cm,const cmatrix &rm) 03180 #if(CXSC_INDEX_CHECK) 03181 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03182 #else 03183 throw(); 03184 #endif 03185 03186 INLINE cimatrix_slice &SetSup(cimatrix_slice &cm,const cmatrix &rm) 03187 #if(CXSC_INDEX_CHECK) 03188 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03189 #else 03190 throw(); 03191 #endif 03192 03193 INLINE cimatrix &SetSup(cimatrix &cm,const cmatrix_slice &rm) 03194 #if(CXSC_INDEX_CHECK) 03195 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03196 #else 03197 throw(); 03198 #endif 03199 03200 INLINE cimatrix_slice &SetSup(cimatrix_slice &cm,const cmatrix_slice &rm) 03201 #if(CXSC_INDEX_CHECK) 03202 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03203 #else 03204 throw(); 03205 #endif 03206 03207 INLINE cimatrix &UncheckedSetInf(cimatrix &cm,const cmatrix &rm) 03208 #if(CXSC_INDEX_CHECK) 03209 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03210 #else 03211 throw(); 03212 #endif 03213 03214 INLINE cimatrix_slice &UncheckedSetInf(cimatrix_slice &cm,const cmatrix &rm) 03215 #if(CXSC_INDEX_CHECK) 03216 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03217 #else 03218 throw(); 03219 #endif 03220 03221 INLINE cimatrix &UncheckedSetInf(cimatrix &cm,const cmatrix_slice &rm) 03222 #if(CXSC_INDEX_CHECK) 03223 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03224 #else 03225 throw(); 03226 #endif 03227 03228 INLINE cimatrix_slice &UncheckedSetInf(cimatrix_slice &cm,const cmatrix_slice &rm) 03229 #if(CXSC_INDEX_CHECK) 03230 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03231 #else 03232 throw(); 03233 #endif 03234 03235 INLINE cimatrix &UncheckedSetSup(cimatrix &cm,const cmatrix &rm) 03236 #if(CXSC_INDEX_CHECK) 03237 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03238 #else 03239 throw(); 03240 #endif 03241 03242 INLINE cimatrix_slice &UncheckedSetSup(cimatrix_slice &cm,const cmatrix &rm) 03243 #if(CXSC_INDEX_CHECK) 03244 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03245 #else 03246 throw(); 03247 #endif 03248 03249 INLINE cimatrix &UncheckedSetSup(cimatrix &cm,const cmatrix_slice &rm) 03250 #if(CXSC_INDEX_CHECK) 03251 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03252 #else 03253 throw(); 03254 #endif 03255 03256 INLINE cimatrix_slice &UncheckedSetSup(cimatrix_slice &cm,const cmatrix_slice &rm) 03257 #if(CXSC_INDEX_CHECK) 03258 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03259 #else 03260 throw(); 03261 #endif 03262 03264 INLINE imatrix Im(const cimatrix &m) throw(); 03266 INLINE imatrix Re(const cimatrix &m) throw(); 03268 INLINE imatrix Im(const cimatrix_slice &m) throw(); 03270 INLINE imatrix Re(const cimatrix_slice &m) throw(); 03272 INLINE cimatrix &SetIm(cimatrix &cm,const imatrix &rm) 03273 #if(CXSC_INDEX_CHECK) 03274 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03275 #else 03276 throw(); 03277 #endif 03278 03279 INLINE cimatrix_slice &SetIm(cimatrix_slice &cm,const imatrix &rm) 03280 #if(CXSC_INDEX_CHECK) 03281 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03282 #else 03283 throw(); 03284 #endif 03285 03286 INLINE cimatrix &SetIm(cimatrix &cm,const imatrix_slice &rm) 03287 #if(CXSC_INDEX_CHECK) 03288 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03289 #else 03290 throw(); 03291 #endif 03292 03293 INLINE cimatrix_slice &SetIm(cimatrix_slice &cm,const imatrix_slice &rm) 03294 #if(CXSC_INDEX_CHECK) 03295 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03296 #else 03297 throw(); 03298 #endif 03299 03300 INLINE cimatrix &SetRe(cimatrix &cm,const imatrix &rm) 03301 #if(CXSC_INDEX_CHECK) 03302 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03303 #else 03304 throw(); 03305 #endif 03306 03307 INLINE cimatrix_slice &SetRe(cimatrix_slice &cm,const imatrix &rm) 03308 #if(CXSC_INDEX_CHECK) 03309 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03310 #else 03311 throw(); 03312 #endif 03313 03314 INLINE cimatrix &SetRe(cimatrix &cm,const imatrix_slice &rm) 03315 #if(CXSC_INDEX_CHECK) 03316 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03317 #else 03318 throw(); 03319 #endif 03320 03321 INLINE cimatrix_slice &SetRe(cimatrix_slice &cm,const imatrix_slice &rm) 03322 #if(CXSC_INDEX_CHECK) 03323 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03324 #else 03325 throw(); 03326 #endif 03327 03328 //===================== Matrix / Scalar =============================== 03329 03331 INLINE cimatrix operator *(const cinterval &c, const cimatrix &m) throw(); 03333 INLINE cimatrix operator *(const cinterval &c, const cimatrix_slice &ms) throw(); 03335 INLINE cimatrix operator *(const cimatrix &m,const cinterval &c) throw(); 03337 INLINE cimatrix operator *(const cimatrix_slice &ms,const cinterval &c) throw(); 03339 INLINE cimatrix &operator *=(cimatrix &m,const cinterval &c) throw(); 03341 INLINE cimatrix operator /(const cimatrix &m,const cinterval &c) throw(); 03343 INLINE cimatrix operator /(const cimatrix_slice &ms, const cinterval &c) throw(); 03345 INLINE cimatrix &operator /=(cimatrix &m,const cinterval &c) throw(); 03346 03347 //------------ real - cimatrix ----------------------------------------------- 03348 03350 INLINE cimatrix operator *(const real &c, const cimatrix &m) throw(); 03352 INLINE cimatrix operator *(const real &c, const cimatrix_slice &ms) throw(); 03354 INLINE cimatrix operator *(const cimatrix &m,const real &c) throw(); 03356 INLINE cimatrix operator *(const cimatrix_slice &ms,const real &c) throw(); 03358 INLINE cimatrix &operator *=(cimatrix &m,const real &c) throw(); 03360 INLINE cimatrix operator /(const cimatrix &m,const real &c) throw(); 03362 INLINE cimatrix operator /(const cimatrix_slice &ms, const real &c) throw(); 03364 INLINE cimatrix &operator /=(cimatrix &m,const real &c) throw(); 03365 //----------------- rmatrix - cinterval ---------------- 03366 03368 INLINE cimatrix operator *(const cinterval &c, const rmatrix &m) throw(); 03370 INLINE cimatrix operator *(const cinterval &c, const rmatrix_slice &ms) throw(); 03372 INLINE cimatrix operator *(const rmatrix &m,const cinterval &c) throw(); 03374 INLINE cimatrix operator *(const rmatrix_slice &ms,const cinterval &c) throw(); 03376 INLINE cimatrix operator /(const rmatrix &m,const cinterval &c) throw(); 03378 INLINE cimatrix operator /(const rmatrix_slice &ms, const cinterval &c) throw(); 03379 03380 //------------ complex - cimatrix ----------------------------------------------- 03381 03383 INLINE cimatrix operator *(const complex &c, const cimatrix &m) throw(); 03385 INLINE cimatrix operator *(const complex &c, const cimatrix_slice &ms) throw(); 03387 INLINE cimatrix operator *(const cimatrix &m,const complex &c) throw(); 03389 INLINE cimatrix operator *(const cimatrix_slice &ms,const complex &c) throw(); 03391 INLINE cimatrix &operator *=(cimatrix &m,const complex &c) throw(); 03393 INLINE cimatrix operator /(const cimatrix &m,const complex &c) throw(); 03395 INLINE cimatrix operator /(const cimatrix_slice &ms, const complex &c) throw(); 03397 INLINE cimatrix &operator /=(cimatrix &m,const complex &c) throw(); 03398 //----------------- cmatrix - cinterval ---------------- 03399 03401 INLINE cimatrix operator *(const cinterval &c, const cmatrix &m) throw(); 03403 INLINE cimatrix operator *(const cinterval &c, const cmatrix_slice &ms) throw(); 03405 INLINE cimatrix operator *(const cmatrix &m,const cinterval &c) throw(); 03407 INLINE cimatrix operator *(const cmatrix_slice &ms,const cinterval &c) throw(); 03409 INLINE cimatrix operator /(const cmatrix &m,const cinterval &c) throw(); 03411 INLINE cimatrix operator /(const cmatrix_slice &ms, const cinterval &c) throw(); 03412 03413 //------------ interval - cimatrix ----------------------------------------------- 03414 03416 INLINE cimatrix operator *(const interval &c, const cimatrix &m) throw(); 03418 INLINE cimatrix operator *(const interval &c, const cimatrix_slice &ms) throw(); 03420 INLINE cimatrix operator *(const cimatrix &m,const interval &c) throw(); 03422 INLINE cimatrix operator *(const cimatrix_slice &ms,const interval &c) throw(); 03424 INLINE cimatrix &operator *=(cimatrix &m,const interval &c) throw(); 03426 INLINE cimatrix operator /(const cimatrix &m,const interval &c) throw(); 03428 INLINE cimatrix operator /(const cimatrix_slice &ms, const interval &c) throw(); 03430 INLINE cimatrix &operator /=(cimatrix &m,const interval &c) throw(); 03431 //----------------- imatrix - cinterval ---------------- 03432 03434 INLINE cimatrix operator *(const cinterval &c, const imatrix &m) throw(); 03436 INLINE cimatrix operator *(const cinterval &c, const imatrix_slice &ms) throw(); 03438 INLINE cimatrix operator *(const imatrix &m,const cinterval &c) throw(); 03440 INLINE cimatrix operator *(const imatrix_slice &ms,const cinterval &c) throw(); 03442 INLINE cimatrix operator /(const imatrix &m,const cinterval &c) throw(); 03444 INLINE cimatrix operator /(const imatrix_slice &ms, const cinterval &c) throw(); 03445 03446 03447 //============================ Matrix / Vector =================================== 03448 03449 03451 INLINE civector operator *(const cimatrix &m,const civector &v) 03452 #if(CXSC_INDEX_CHECK) 03453 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03454 #else 03455 throw(); 03456 #endif 03457 03458 INLINE civector operator *(const cimatrix_slice &ms,const civector &v) 03459 #if(CXSC_INDEX_CHECK) 03460 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03461 #else 03462 throw(); 03463 #endif 03464 03465 INLINE civector operator *(const civector &v,const cimatrix &m) 03466 #if(CXSC_INDEX_CHECK) 03467 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03468 #else 03469 throw(); 03470 #endif 03471 03472 INLINE civector operator *(const civector &v,const cimatrix_slice &ms) 03473 #if(CXSC_INDEX_CHECK) 03474 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03475 #else 03476 throw(); 03477 #endif 03478 03479 INLINE civector &operator *=(civector &v,const cimatrix &m) 03480 #if(CXSC_INDEX_CHECK) 03481 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03482 #else 03483 throw(); 03484 #endif 03485 03486 INLINE civector &operator *=(civector &v,const cimatrix_slice &ms) 03487 #if(CXSC_INDEX_CHECK) 03488 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03489 #else 03490 throw(); 03491 #endif 03492 03494 INLINE civector operator *(const civector_slice &v,const cimatrix &m) 03495 #if(CXSC_INDEX_CHECK) 03496 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03497 #else 03498 throw(); 03499 #endif 03500 03501 INLINE civector operator *(const civector_slice &v,const cimatrix_slice &m) 03502 #if(CXSC_INDEX_CHECK) 03503 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03504 #else 03505 throw(); 03506 #endif 03507 03508 //----------------- real ------------------------------------- 03509 03511 INLINE civector operator *(const rvector &v,const cimatrix &m) 03512 #if(CXSC_INDEX_CHECK) 03513 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03514 #else 03515 throw(); 03516 #endif 03517 03518 INLINE civector operator *(const rvector &v,const cimatrix_slice &ms) 03519 #if(CXSC_INDEX_CHECK) 03520 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03521 #else 03522 throw(); 03523 #endif 03524 03525 INLINE civector operator *(const rvector_slice &v,const cimatrix &m) 03526 #if(CXSC_INDEX_CHECK) 03527 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03528 #else 03529 throw(); 03530 #endif 03531 03533 INLINE civector operator *(const cimatrix &m,const rvector &v) 03534 #if(CXSC_INDEX_CHECK) 03535 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03536 #else 03537 throw(); 03538 #endif 03539 03540 INLINE civector operator *(const cimatrix_slice &ms,const rvector &v) 03541 #if(CXSC_INDEX_CHECK) 03542 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03543 #else 03544 throw(); 03545 #endif 03546 03547 //----------------- complex ------------------------------------- 03548 03550 INLINE civector operator *(const cvector &v,const cimatrix &m) 03551 #if(CXSC_INDEX_CHECK) 03552 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03553 #else 03554 throw(); 03555 #endif 03556 03557 INLINE civector operator *(const cvector &v,const cimatrix_slice &ms) 03558 #if(CXSC_INDEX_CHECK) 03559 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03560 #else 03561 throw(); 03562 #endif 03563 03564 INLINE civector operator *(const cvector_slice &v,const cimatrix &m) 03565 #if(CXSC_INDEX_CHECK) 03566 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03567 #else 03568 throw(); 03569 #endif 03570 03572 INLINE civector operator *(const cimatrix &m,const cvector &v) 03573 #if(CXSC_INDEX_CHECK) 03574 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03575 #else 03576 throw(); 03577 #endif 03578 03579 INLINE civector operator *(const cimatrix_slice &ms,const cvector &v) 03580 #if(CXSC_INDEX_CHECK) 03581 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03582 #else 03583 throw(); 03584 #endif 03585 03586 //----------------- interval ------------------------------------- 03587 03589 INLINE civector operator *(const ivector &v,const cimatrix &m) 03590 #if(CXSC_INDEX_CHECK) 03591 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03592 #else 03593 throw(); 03594 #endif 03595 03596 INLINE civector operator *(const ivector &v,const cimatrix_slice &ms) 03597 #if(CXSC_INDEX_CHECK) 03598 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03599 #else 03600 throw(); 03601 #endif 03602 03603 INLINE civector operator *(const ivector_slice &v,const cimatrix &m) 03604 #if(CXSC_INDEX_CHECK) 03605 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03606 #else 03607 throw(); 03608 #endif 03609 03611 INLINE civector operator *(const cimatrix &m,const ivector &v) 03612 #if(CXSC_INDEX_CHECK) 03613 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03614 #else 03615 throw(); 03616 #endif 03617 03618 INLINE civector operator *(const cimatrix_slice &ms,const ivector &v) 03619 #if(CXSC_INDEX_CHECK) 03620 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03621 #else 03622 throw(); 03623 #endif 03624 03625 03626 //================ Matrix / Matrix ============================ 03627 03629 INLINE const cimatrix &operator +(const cimatrix &m1) throw(); 03631 INLINE cimatrix operator +(const cimatrix_slice &ms) throw(); 03633 INLINE cimatrix operator +(const cimatrix &m1,const cimatrix &m2) 03634 #if(CXSC_INDEX_CHECK) 03635 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03636 #else 03637 throw(); 03638 #endif 03639 03640 INLINE cimatrix operator +(const cimatrix &m,const cimatrix_slice &ms) 03641 #if(CXSC_INDEX_CHECK) 03642 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03643 #else 03644 throw(); 03645 #endif 03646 03647 INLINE cimatrix operator +(const cimatrix_slice &ms,const cimatrix &m) 03648 #if(CXSC_INDEX_CHECK) 03649 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03650 #else 03651 throw(); 03652 #endif 03653 03654 INLINE cimatrix operator +(const cimatrix_slice &m1,const cimatrix_slice &m2) 03655 #if(CXSC_INDEX_CHECK) 03656 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03657 #else 03658 throw(); 03659 #endif 03660 03661 INLINE cimatrix &operator +=(cimatrix &m1,const cimatrix &m2) 03662 #if(CXSC_INDEX_CHECK) 03663 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03664 #else 03665 throw(); 03666 #endif 03667 03668 INLINE cimatrix &operator +=(cimatrix &m1,const cimatrix_slice &ms) 03669 #if(CXSC_INDEX_CHECK) 03670 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03671 #else 03672 throw(); 03673 #endif 03674 03676 INLINE cimatrix operator -(const cimatrix &m) throw(); 03678 INLINE cimatrix operator -(const cimatrix_slice &ms) throw(); 03680 INLINE cimatrix operator -(const cimatrix &m1,const cimatrix &m2) 03681 #if(CXSC_INDEX_CHECK) 03682 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03683 #else 03684 throw(); 03685 #endif 03686 03687 INLINE cimatrix operator -(const cimatrix &m,const cimatrix_slice &ms) 03688 #if(CXSC_INDEX_CHECK) 03689 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03690 #else 03691 throw(); 03692 #endif 03693 03694 INLINE cimatrix operator -(const cimatrix_slice &ms,const cimatrix &m) 03695 #if(CXSC_INDEX_CHECK) 03696 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03697 #else 03698 throw(); 03699 #endif 03700 03701 INLINE cimatrix operator -(const cimatrix_slice &ms1,const cimatrix_slice &ms2) 03702 #if(CXSC_INDEX_CHECK) 03703 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03704 #else 03705 throw(); 03706 #endif 03707 03708 INLINE cimatrix &operator -=(cimatrix &m1,const cimatrix &m2) 03709 #if(CXSC_INDEX_CHECK) 03710 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03711 #else 03712 throw(); 03713 #endif 03714 03715 INLINE cimatrix &operator -=(cimatrix &m1,const cimatrix_slice &ms) 03716 #if(CXSC_INDEX_CHECK) 03717 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03718 #else 03719 throw(); 03720 #endif 03721 03723 INLINE cimatrix operator *(const cimatrix &m1, const cimatrix &m2) 03724 #if(CXSC_INDEX_CHECK) 03725 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03726 #else 03727 throw(); 03728 #endif 03729 03730 INLINE cimatrix operator *(const cimatrix &m1, const cimatrix_slice &ms) 03731 #if(CXSC_INDEX_CHECK) 03732 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03733 #else 03734 throw(); 03735 #endif 03736 03737 INLINE cimatrix operator *(const cimatrix_slice &ms, const cimatrix &m1) 03738 #if(CXSC_INDEX_CHECK) 03739 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03740 #else 03741 throw(); 03742 #endif 03743 03744 INLINE cimatrix operator *(const cimatrix_slice &ms1, const cimatrix_slice &ms2) 03745 #if(CXSC_INDEX_CHECK) 03746 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03747 #else 03748 throw(); 03749 #endif 03750 03751 INLINE cimatrix &operator *=(cimatrix &m1,const cimatrix &m2) 03752 #if(CXSC_INDEX_CHECK) 03753 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03754 #else 03755 throw(); 03756 #endif 03757 03758 INLINE cimatrix &operator *=(cimatrix &m1,const cimatrix_slice &ms) 03759 #if(CXSC_INDEX_CHECK) 03760 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03761 #else 03762 throw(); 03763 #endif 03764 03765 03767 INLINE cimatrix operator |(const cimatrix &m1,const cimatrix &m2) 03768 #if(CXSC_INDEX_CHECK) 03769 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03770 #else 03771 throw(); 03772 #endif 03773 03774 INLINE cimatrix operator |(const cimatrix &m,const cimatrix_slice &ms) 03775 #if(CXSC_INDEX_CHECK) 03776 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03777 #else 03778 throw(); 03779 #endif 03780 03781 INLINE cimatrix operator |(const cimatrix_slice &ms,const cimatrix &m) 03782 #if(CXSC_INDEX_CHECK) 03783 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03784 #else 03785 throw(); 03786 #endif 03787 03788 INLINE cimatrix operator |(const cimatrix_slice &m1,const cimatrix_slice &m2) 03789 #if(CXSC_INDEX_CHECK) 03790 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03791 #else 03792 throw(); 03793 #endif 03794 03795 INLINE cimatrix &operator |=(cimatrix &m1,const cimatrix &m2) 03796 #if(CXSC_INDEX_CHECK) 03797 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03798 #else 03799 throw(); 03800 #endif 03801 03802 INLINE cimatrix &operator |=(cimatrix &m1,const cimatrix_slice &ms) 03803 #if(CXSC_INDEX_CHECK) 03804 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03805 #else 03806 throw(); 03807 #endif 03808 03810 INLINE cimatrix operator &(const cimatrix &m1,const cimatrix &m2) 03811 #if(CXSC_INDEX_CHECK) 03812 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03813 #else 03814 throw(); 03815 #endif 03816 03817 INLINE cimatrix operator &(const cimatrix &m,const cimatrix_slice &ms) 03818 #if(CXSC_INDEX_CHECK) 03819 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03820 #else 03821 throw(); 03822 #endif 03823 03824 INLINE cimatrix operator &(const cimatrix_slice &ms,const cimatrix &m) 03825 #if(CXSC_INDEX_CHECK) 03826 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03827 #else 03828 throw(); 03829 #endif 03830 03831 INLINE cimatrix operator &(const cimatrix_slice &m1,const cimatrix_slice &m2) 03832 #if(CXSC_INDEX_CHECK) 03833 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03834 #else 03835 throw(); 03836 #endif 03837 03838 INLINE cimatrix &operator &=(cimatrix &m1,const cimatrix &m2) 03839 #if(CXSC_INDEX_CHECK) 03840 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03841 #else 03842 throw(); 03843 #endif 03844 03845 INLINE cimatrix &operator &=(cimatrix &m1,const cimatrix_slice &ms) 03846 #if(CXSC_INDEX_CHECK) 03847 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03848 #else 03849 throw(); 03850 #endif 03851 03852 //---------- rmatrix-cimatrix ------------------ 03854 INLINE cimatrix operator +(const rmatrix &m1,const cimatrix &m2) 03855 #if(CXSC_INDEX_CHECK) 03856 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03857 #else 03858 throw(); 03859 #endif 03860 03861 INLINE cimatrix operator +(const cimatrix &m1,const rmatrix &m2) 03862 #if(CXSC_INDEX_CHECK) 03863 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03864 #else 03865 throw(); 03866 #endif 03867 03868 INLINE cimatrix operator +(const rmatrix &m,const cimatrix_slice &ms) 03869 #if(CXSC_INDEX_CHECK) 03870 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03871 #else 03872 throw(); 03873 #endif 03874 03875 INLINE cimatrix operator +(const cimatrix &m,const rmatrix_slice &ms) 03876 #if(CXSC_INDEX_CHECK) 03877 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03878 #else 03879 throw(); 03880 #endif 03881 03882 INLINE cimatrix operator +(const rmatrix_slice &ms,const cimatrix &m) 03883 #if(CXSC_INDEX_CHECK) 03884 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03885 #else 03886 throw(); 03887 #endif 03888 03889 INLINE cimatrix operator +(const cimatrix_slice &ms,const rmatrix &m) 03890 #if(CXSC_INDEX_CHECK) 03891 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03892 #else 03893 throw(); 03894 #endif 03895 03896 INLINE cimatrix operator +(const rmatrix_slice &m1,const cimatrix_slice &m2) 03897 #if(CXSC_INDEX_CHECK) 03898 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03899 #else 03900 throw(); 03901 #endif 03902 03903 INLINE cimatrix operator +(const cimatrix_slice &m1,const rmatrix_slice &m2) 03904 #if(CXSC_INDEX_CHECK) 03905 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03906 #else 03907 throw(); 03908 #endif 03909 03910 INLINE cimatrix &operator +=(cimatrix &m1,const rmatrix &m2) 03911 #if(CXSC_INDEX_CHECK) 03912 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03913 #else 03914 throw(); 03915 #endif 03916 03917 INLINE cimatrix &operator +=(cimatrix &m1,const rmatrix_slice &ms) 03918 #if(CXSC_INDEX_CHECK) 03919 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03920 #else 03921 throw(); 03922 #endif 03923 03925 INLINE cimatrix operator -(const rmatrix &m1,const cimatrix &m2) 03926 #if(CXSC_INDEX_CHECK) 03927 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03928 #else 03929 throw(); 03930 #endif 03931 03932 INLINE cimatrix operator -(const cimatrix &m1,const rmatrix &m2) 03933 #if(CXSC_INDEX_CHECK) 03934 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03935 #else 03936 throw(); 03937 #endif 03938 03939 INLINE cimatrix operator -(const rmatrix &m,const cimatrix_slice &ms) 03940 #if(CXSC_INDEX_CHECK) 03941 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03942 #else 03943 throw(); 03944 #endif 03945 03946 INLINE cimatrix operator -(const cimatrix &m,const rmatrix_slice &ms) 03947 #if(CXSC_INDEX_CHECK) 03948 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03949 #else 03950 throw(); 03951 #endif 03952 03953 INLINE cimatrix operator -(const rmatrix_slice &ms,const cimatrix &m) 03954 #if(CXSC_INDEX_CHECK) 03955 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03956 #else 03957 throw(); 03958 #endif 03959 03960 INLINE cimatrix operator -(const cimatrix_slice &ms,const rmatrix &m) 03961 #if(CXSC_INDEX_CHECK) 03962 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03963 #else 03964 throw(); 03965 #endif 03966 03967 INLINE cimatrix operator -(const rmatrix_slice &ms1,const cimatrix_slice &ms2) 03968 #if(CXSC_INDEX_CHECK) 03969 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03970 #else 03971 throw(); 03972 #endif 03973 03974 INLINE cimatrix operator -(const cimatrix_slice &ms1,const rmatrix_slice &ms2) 03975 #if(CXSC_INDEX_CHECK) 03976 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03977 #else 03978 throw(); 03979 #endif 03980 03981 INLINE cimatrix &operator -=(cimatrix &m1,const rmatrix &m2) 03982 #if(CXSC_INDEX_CHECK) 03983 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03984 #else 03985 throw(); 03986 #endif 03987 03988 INLINE cimatrix &operator -=(cimatrix &m1,const rmatrix_slice &ms) 03989 #if(CXSC_INDEX_CHECK) 03990 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03991 #else 03992 throw(); 03993 #endif 03994 03996 INLINE cimatrix operator *(const rmatrix &m1, const cimatrix &m2) 03997 #if(CXSC_INDEX_CHECK) 03998 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 03999 #else 04000 throw(); 04001 #endif 04002 04003 INLINE cimatrix operator *(const cimatrix &m1, const rmatrix &m2) 04004 #if(CXSC_INDEX_CHECK) 04005 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04006 #else 04007 throw(); 04008 #endif 04009 04010 INLINE cimatrix operator *(const rmatrix &m1, const cimatrix_slice &ms) 04011 #if(CXSC_INDEX_CHECK) 04012 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04013 #else 04014 throw(); 04015 #endif 04016 04017 INLINE cimatrix operator *(const cimatrix &m1, const rmatrix_slice &ms) 04018 #if(CXSC_INDEX_CHECK) 04019 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04020 #else 04021 throw(); 04022 #endif 04023 04024 INLINE cimatrix operator *(const rmatrix_slice &ms, const cimatrix &m1) 04025 #if(CXSC_INDEX_CHECK) 04026 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04027 #else 04028 throw(); 04029 #endif 04030 04031 INLINE cimatrix operator *(const cimatrix_slice &ms, const rmatrix &m1) 04032 #if(CXSC_INDEX_CHECK) 04033 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04034 #else 04035 throw(); 04036 #endif 04037 04038 INLINE cimatrix operator *(const rmatrix_slice &ms1, const cimatrix_slice &ms2) 04039 #if(CXSC_INDEX_CHECK) 04040 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04041 #else 04042 throw(); 04043 #endif 04044 04045 INLINE cimatrix operator *(const cimatrix_slice &ms1, const rmatrix_slice &ms2) 04046 #if(CXSC_INDEX_CHECK) 04047 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04048 #else 04049 throw(); 04050 #endif 04051 04052 INLINE cimatrix &operator *=(cimatrix &m1,const rmatrix &m2) 04053 #if(CXSC_INDEX_CHECK) 04054 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04055 #else 04056 throw(); 04057 #endif 04058 04059 INLINE cimatrix &operator *=(cimatrix &m1,const rmatrix_slice &ms) 04060 #if(CXSC_INDEX_CHECK) 04061 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04062 #else 04063 throw(); 04064 #endif 04065 04067 INLINE cimatrix operator |(const rmatrix &m1,const cimatrix &m2) 04068 #if(CXSC_INDEX_CHECK) 04069 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04070 #else 04071 throw(); 04072 #endif 04073 04074 INLINE cimatrix operator |(const cimatrix &m1,const rmatrix &m2) 04075 #if(CXSC_INDEX_CHECK) 04076 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04077 #else 04078 throw(); 04079 #endif 04080 04081 INLINE cimatrix operator |(const rmatrix &m,const cimatrix_slice &ms) 04082 #if(CXSC_INDEX_CHECK) 04083 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04084 #else 04085 throw(); 04086 #endif 04087 04088 INLINE cimatrix operator |(const cimatrix &m,const rmatrix_slice &ms) 04089 #if(CXSC_INDEX_CHECK) 04090 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04091 #else 04092 throw(); 04093 #endif 04094 04095 INLINE cimatrix operator |(const rmatrix_slice &ms,const cimatrix &m) 04096 #if(CXSC_INDEX_CHECK) 04097 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04098 #else 04099 throw(); 04100 #endif 04101 04102 INLINE cimatrix operator |(const cimatrix_slice &ms,const rmatrix &m) 04103 #if(CXSC_INDEX_CHECK) 04104 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04105 #else 04106 throw(); 04107 #endif 04108 04109 INLINE cimatrix operator |(const rmatrix_slice &m1,const cimatrix_slice &m2) 04110 #if(CXSC_INDEX_CHECK) 04111 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04112 #else 04113 throw(); 04114 #endif 04115 04116 INLINE cimatrix operator |(const cimatrix_slice &m1,const rmatrix_slice &m2) 04117 #if(CXSC_INDEX_CHECK) 04118 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04119 #else 04120 throw(); 04121 #endif 04122 04123 INLINE cimatrix &operator |=(cimatrix &m1,const rmatrix &m2) 04124 #if(CXSC_INDEX_CHECK) 04125 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04126 #else 04127 throw(); 04128 #endif 04129 04130 INLINE cimatrix &operator |=(cimatrix &m1,const rmatrix_slice &ms) 04131 #if(CXSC_INDEX_CHECK) 04132 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04133 #else 04134 throw(); 04135 #endif 04136 04138 INLINE cimatrix operator &(const rmatrix &m1,const cimatrix &m2) 04139 #if(CXSC_INDEX_CHECK) 04140 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04141 #else 04142 throw(); 04143 #endif 04144 04145 INLINE cimatrix operator &(const cimatrix &m1,const rmatrix &m2) 04146 #if(CXSC_INDEX_CHECK) 04147 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04148 #else 04149 throw(); 04150 #endif 04151 04152 INLINE cimatrix operator &(const rmatrix &m,const cimatrix_slice &ms) 04153 #if(CXSC_INDEX_CHECK) 04154 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04155 #else 04156 throw(); 04157 #endif 04158 04159 INLINE cimatrix operator &(const cimatrix &m,const rmatrix_slice &ms) 04160 #if(CXSC_INDEX_CHECK) 04161 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04162 #else 04163 throw(); 04164 #endif 04165 04166 INLINE cimatrix operator &(const rmatrix_slice &ms,const cimatrix &m) 04167 #if(CXSC_INDEX_CHECK) 04168 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04169 #else 04170 throw(); 04171 #endif 04172 04173 INLINE cimatrix operator &(const cimatrix_slice &ms,const rmatrix &m) 04174 #if(CXSC_INDEX_CHECK) 04175 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04176 #else 04177 throw(); 04178 #endif 04179 04180 INLINE cimatrix operator &(const rmatrix_slice &m1,const cimatrix_slice &m2) 04181 #if(CXSC_INDEX_CHECK) 04182 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04183 #else 04184 throw(); 04185 #endif 04186 04187 INLINE cimatrix operator &(const cimatrix_slice &m1,const rmatrix_slice &m2) 04188 #if(CXSC_INDEX_CHECK) 04189 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04190 #else 04191 throw(); 04192 #endif 04193 04194 INLINE cimatrix &operator &=(cimatrix &m1,const rmatrix &m2) 04195 #if(CXSC_INDEX_CHECK) 04196 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04197 #else 04198 throw(); 04199 #endif 04200 04201 INLINE cimatrix &operator &=(cimatrix &m1,const rmatrix_slice &ms) 04202 #if(CXSC_INDEX_CHECK) 04203 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04204 #else 04205 throw(); 04206 #endif 04207 04208 //---------- cmatrix-cimatrix ------------------ 04210 INLINE cimatrix operator +(const cmatrix &m1,const cimatrix &m2) 04211 #if(CXSC_INDEX_CHECK) 04212 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04213 #else 04214 throw(); 04215 #endif 04216 04217 INLINE cimatrix operator +(const cimatrix &m1,const cmatrix &m2) 04218 #if(CXSC_INDEX_CHECK) 04219 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04220 #else 04221 throw(); 04222 #endif 04223 04224 INLINE cimatrix operator +(const cmatrix &m,const cimatrix_slice &ms) 04225 #if(CXSC_INDEX_CHECK) 04226 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04227 #else 04228 throw(); 04229 #endif 04230 04231 INLINE cimatrix operator +(const cimatrix &m,const cmatrix_slice &ms) 04232 #if(CXSC_INDEX_CHECK) 04233 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04234 #else 04235 throw(); 04236 #endif 04237 04238 INLINE cimatrix operator +(const cmatrix_slice &ms,const cimatrix &m) 04239 #if(CXSC_INDEX_CHECK) 04240 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04241 #else 04242 throw(); 04243 #endif 04244 04245 INLINE cimatrix operator +(const cimatrix_slice &ms,const cmatrix &m) 04246 #if(CXSC_INDEX_CHECK) 04247 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04248 #else 04249 throw(); 04250 #endif 04251 04252 INLINE cimatrix operator +(const cmatrix_slice &m1,const cimatrix_slice &m2) 04253 #if(CXSC_INDEX_CHECK) 04254 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04255 #else 04256 throw(); 04257 #endif 04258 04259 INLINE cimatrix operator +(const cimatrix_slice &m1,const cmatrix_slice &m2) 04260 #if(CXSC_INDEX_CHECK) 04261 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04262 #else 04263 throw(); 04264 #endif 04265 04266 INLINE cimatrix &operator +=(cimatrix &m1,const cmatrix &m2) 04267 #if(CXSC_INDEX_CHECK) 04268 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04269 #else 04270 throw(); 04271 #endif 04272 04273 INLINE cimatrix &operator +=(cimatrix &m1,const cmatrix_slice &ms) 04274 #if(CXSC_INDEX_CHECK) 04275 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04276 #else 04277 throw(); 04278 #endif 04279 04281 INLINE cimatrix operator -(const cmatrix &m1,const cimatrix &m2) 04282 #if(CXSC_INDEX_CHECK) 04283 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04284 #else 04285 throw(); 04286 #endif 04287 04288 INLINE cimatrix operator -(const cimatrix &m1,const cmatrix &m2) 04289 #if(CXSC_INDEX_CHECK) 04290 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04291 #else 04292 throw(); 04293 #endif 04294 04295 INLINE cimatrix operator -(const cmatrix &m,const cimatrix_slice &ms) 04296 #if(CXSC_INDEX_CHECK) 04297 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04298 #else 04299 throw(); 04300 #endif 04301 04302 INLINE cimatrix operator -(const cimatrix &m,const cmatrix_slice &ms) 04303 #if(CXSC_INDEX_CHECK) 04304 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04305 #else 04306 throw(); 04307 #endif 04308 04309 INLINE cimatrix operator -(const cmatrix_slice &ms,const cimatrix &m) 04310 #if(CXSC_INDEX_CHECK) 04311 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04312 #else 04313 throw(); 04314 #endif 04315 04316 INLINE cimatrix operator -(const cimatrix_slice &ms,const cmatrix &m) 04317 #if(CXSC_INDEX_CHECK) 04318 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04319 #else 04320 throw(); 04321 #endif 04322 04323 INLINE cimatrix operator -(const cmatrix_slice &ms1,const cimatrix_slice &ms2) 04324 #if(CXSC_INDEX_CHECK) 04325 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04326 #else 04327 throw(); 04328 #endif 04329 04330 INLINE cimatrix operator -(const cimatrix_slice &ms1,const cmatrix_slice &ms2) 04331 #if(CXSC_INDEX_CHECK) 04332 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04333 #else 04334 throw(); 04335 #endif 04336 04337 INLINE cimatrix &operator -=(cimatrix &m1,const cmatrix &m2) 04338 #if(CXSC_INDEX_CHECK) 04339 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04340 #else 04341 throw(); 04342 #endif 04343 04344 INLINE cimatrix &operator -=(cimatrix &m1,const cmatrix_slice &ms) 04345 #if(CXSC_INDEX_CHECK) 04346 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04347 #else 04348 throw(); 04349 #endif 04350 04352 INLINE cimatrix operator *(const cmatrix &m1, const cimatrix &m2) 04353 #if(CXSC_INDEX_CHECK) 04354 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04355 #else 04356 throw(); 04357 #endif 04358 04359 INLINE cimatrix operator *(const cimatrix &m1, const cmatrix &m2) 04360 #if(CXSC_INDEX_CHECK) 04361 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04362 #else 04363 throw(); 04364 #endif 04365 04366 INLINE cimatrix operator *(const cmatrix &m1, const cimatrix_slice &ms) 04367 #if(CXSC_INDEX_CHECK) 04368 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04369 #else 04370 throw(); 04371 #endif 04372 04373 INLINE cimatrix operator *(const cimatrix &m1, const cmatrix_slice &ms) 04374 #if(CXSC_INDEX_CHECK) 04375 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04376 #else 04377 throw(); 04378 #endif 04379 04380 INLINE cimatrix operator *(const cmatrix_slice &ms, const cimatrix &m1) 04381 #if(CXSC_INDEX_CHECK) 04382 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04383 #else 04384 throw(); 04385 #endif 04386 04387 INLINE cimatrix operator *(const cimatrix_slice &ms, const cmatrix &m1) 04388 #if(CXSC_INDEX_CHECK) 04389 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04390 #else 04391 throw(); 04392 #endif 04393 04394 INLINE cimatrix operator *(const cmatrix_slice &ms1, const cimatrix_slice &ms2) 04395 #if(CXSC_INDEX_CHECK) 04396 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04397 #else 04398 throw(); 04399 #endif 04400 04401 INLINE cimatrix operator *(const cimatrix_slice &ms1, const cmatrix_slice &ms2) 04402 #if(CXSC_INDEX_CHECK) 04403 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04404 #else 04405 throw(); 04406 #endif 04407 04408 INLINE cimatrix &operator *=(cimatrix &m1,const cmatrix &m2) 04409 #if(CXSC_INDEX_CHECK) 04410 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04411 #else 04412 throw(); 04413 #endif 04414 04415 INLINE cimatrix &operator *=(cimatrix &m1,const cmatrix_slice &ms) 04416 #if(CXSC_INDEX_CHECK) 04417 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04418 #else 04419 throw(); 04420 #endif 04421 04423 INLINE cimatrix operator |(const cmatrix &m1,const cimatrix &m2) 04424 #if(CXSC_INDEX_CHECK) 04425 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04426 #else 04427 throw(); 04428 #endif 04429 04430 INLINE cimatrix operator |(const cimatrix &m1,const cmatrix &m2) 04431 #if(CXSC_INDEX_CHECK) 04432 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04433 #else 04434 throw(); 04435 #endif 04436 04437 INLINE cimatrix operator |(const cmatrix &m,const cimatrix_slice &ms) 04438 #if(CXSC_INDEX_CHECK) 04439 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04440 #else 04441 throw(); 04442 #endif 04443 04444 INLINE cimatrix operator |(const cimatrix &m,const cmatrix_slice &ms) 04445 #if(CXSC_INDEX_CHECK) 04446 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04447 #else 04448 throw(); 04449 #endif 04450 04451 INLINE cimatrix operator |(const cmatrix_slice &ms,const cimatrix &m) 04452 #if(CXSC_INDEX_CHECK) 04453 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04454 #else 04455 throw(); 04456 #endif 04457 04458 INLINE cimatrix operator |(const cimatrix_slice &ms,const cmatrix &m) 04459 #if(CXSC_INDEX_CHECK) 04460 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04461 #else 04462 throw(); 04463 #endif 04464 04465 INLINE cimatrix operator |(const cmatrix_slice &m1,const cimatrix_slice &m2) 04466 #if(CXSC_INDEX_CHECK) 04467 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04468 #else 04469 throw(); 04470 #endif 04471 04472 INLINE cimatrix operator |(const cimatrix_slice &m1,const cmatrix_slice &m2) 04473 #if(CXSC_INDEX_CHECK) 04474 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04475 #else 04476 throw(); 04477 #endif 04478 04479 INLINE cimatrix &operator |=(cimatrix &m1,const cmatrix &m2) 04480 #if(CXSC_INDEX_CHECK) 04481 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04482 #else 04483 throw(); 04484 #endif 04485 04486 INLINE cimatrix &operator |=(cimatrix &m1,const cmatrix_slice &ms) 04487 #if(CXSC_INDEX_CHECK) 04488 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04489 #else 04490 throw(); 04491 #endif 04492 04494 INLINE cimatrix operator &(const cmatrix &m1,const cimatrix &m2) 04495 #if(CXSC_INDEX_CHECK) 04496 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04497 #else 04498 throw(); 04499 #endif 04500 04501 INLINE cimatrix operator &(const cimatrix &m1,const cmatrix &m2) 04502 #if(CXSC_INDEX_CHECK) 04503 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04504 #else 04505 throw(); 04506 #endif 04507 04508 INLINE cimatrix operator &(const cmatrix &m,const cimatrix_slice &ms) 04509 #if(CXSC_INDEX_CHECK) 04510 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04511 #else 04512 throw(); 04513 #endif 04514 04515 INLINE cimatrix operator &(const cimatrix &m,const cmatrix_slice &ms) 04516 #if(CXSC_INDEX_CHECK) 04517 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04518 #else 04519 throw(); 04520 #endif 04521 04522 INLINE cimatrix operator &(const cmatrix_slice &ms,const cimatrix &m) 04523 #if(CXSC_INDEX_CHECK) 04524 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04525 #else 04526 throw(); 04527 #endif 04528 04529 INLINE cimatrix operator &(const cimatrix_slice &ms,const cmatrix &m) 04530 #if(CXSC_INDEX_CHECK) 04531 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04532 #else 04533 throw(); 04534 #endif 04535 04536 INLINE cimatrix operator &(const cmatrix_slice &m1,const cimatrix_slice &m2) 04537 #if(CXSC_INDEX_CHECK) 04538 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04539 #else 04540 throw(); 04541 #endif 04542 04543 INLINE cimatrix operator &(const cimatrix_slice &m1,const cmatrix_slice &m2) 04544 #if(CXSC_INDEX_CHECK) 04545 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04546 #else 04547 throw(); 04548 #endif 04549 04550 INLINE cimatrix &operator &=(cimatrix &m1,const cmatrix &m2) 04551 #if(CXSC_INDEX_CHECK) 04552 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04553 #else 04554 throw(); 04555 #endif 04556 04557 INLINE cimatrix &operator &=(cimatrix &m1,const cmatrix_slice &ms) 04558 #if(CXSC_INDEX_CHECK) 04559 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04560 #else 04561 throw(); 04562 #endif 04563 04564 //---------- imatrix-cimatrix ------------------ 04566 INLINE cimatrix operator +(const imatrix &m1,const cimatrix &m2) 04567 #if(CXSC_INDEX_CHECK) 04568 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04569 #else 04570 throw(); 04571 #endif 04572 04573 INLINE cimatrix operator +(const cimatrix &m1,const imatrix &m2) 04574 #if(CXSC_INDEX_CHECK) 04575 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04576 #else 04577 throw(); 04578 #endif 04579 04580 INLINE cimatrix operator +(const imatrix &m,const cimatrix_slice &ms) 04581 #if(CXSC_INDEX_CHECK) 04582 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04583 #else 04584 throw(); 04585 #endif 04586 04587 INLINE cimatrix operator +(const cimatrix &m,const imatrix_slice &ms) 04588 #if(CXSC_INDEX_CHECK) 04589 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04590 #else 04591 throw(); 04592 #endif 04593 04594 INLINE cimatrix operator +(const imatrix_slice &ms,const cimatrix &m) 04595 #if(CXSC_INDEX_CHECK) 04596 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04597 #else 04598 throw(); 04599 #endif 04600 04601 INLINE cimatrix operator +(const cimatrix_slice &ms,const imatrix &m) 04602 #if(CXSC_INDEX_CHECK) 04603 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04604 #else 04605 throw(); 04606 #endif 04607 04608 INLINE cimatrix operator +(const imatrix_slice &m1,const cimatrix_slice &m2) 04609 #if(CXSC_INDEX_CHECK) 04610 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04611 #else 04612 throw(); 04613 #endif 04614 04615 INLINE cimatrix operator +(const cimatrix_slice &m1,const imatrix_slice &m2) 04616 #if(CXSC_INDEX_CHECK) 04617 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04618 #else 04619 throw(); 04620 #endif 04621 04622 INLINE cimatrix &operator +=(cimatrix &m1,const imatrix &m2) 04623 #if(CXSC_INDEX_CHECK) 04624 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04625 #else 04626 throw(); 04627 #endif 04628 04629 INLINE cimatrix &operator +=(cimatrix &m1,const imatrix_slice &ms) 04630 #if(CXSC_INDEX_CHECK) 04631 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04632 #else 04633 throw(); 04634 #endif 04635 04637 INLINE cimatrix operator -(const imatrix &m1,const cimatrix &m2) 04638 #if(CXSC_INDEX_CHECK) 04639 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04640 #else 04641 throw(); 04642 #endif 04643 04644 INLINE cimatrix operator -(const cimatrix &m1,const imatrix &m2) 04645 #if(CXSC_INDEX_CHECK) 04646 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04647 #else 04648 throw(); 04649 #endif 04650 04651 INLINE cimatrix operator -(const imatrix &m,const cimatrix_slice &ms) 04652 #if(CXSC_INDEX_CHECK) 04653 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04654 #else 04655 throw(); 04656 #endif 04657 04658 INLINE cimatrix operator -(const cimatrix &m,const imatrix_slice &ms) 04659 #if(CXSC_INDEX_CHECK) 04660 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04661 #else 04662 throw(); 04663 #endif 04664 04665 INLINE cimatrix operator -(const imatrix_slice &ms,const cimatrix &m) 04666 #if(CXSC_INDEX_CHECK) 04667 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04668 #else 04669 throw(); 04670 #endif 04671 04672 INLINE cimatrix operator -(const cimatrix_slice &ms,const imatrix &m) 04673 #if(CXSC_INDEX_CHECK) 04674 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04675 #else 04676 throw(); 04677 #endif 04678 04679 INLINE cimatrix operator -(const imatrix_slice &ms1,const cimatrix_slice &ms2) 04680 #if(CXSC_INDEX_CHECK) 04681 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04682 #else 04683 throw(); 04684 #endif 04685 04686 INLINE cimatrix operator -(const cimatrix_slice &ms1,const imatrix_slice &ms2) 04687 #if(CXSC_INDEX_CHECK) 04688 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04689 #else 04690 throw(); 04691 #endif 04692 04693 INLINE cimatrix &operator -=(cimatrix &m1,const imatrix &m2) 04694 #if(CXSC_INDEX_CHECK) 04695 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04696 #else 04697 throw(); 04698 #endif 04699 04700 INLINE cimatrix &operator -=(cimatrix &m1,const imatrix_slice &ms) 04701 #if(CXSC_INDEX_CHECK) 04702 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04703 #else 04704 throw(); 04705 #endif 04706 04708 INLINE cimatrix operator *(const imatrix &m1, const cimatrix &m2) 04709 #if(CXSC_INDEX_CHECK) 04710 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04711 #else 04712 throw(); 04713 #endif 04714 04715 INLINE cimatrix operator *(const cimatrix &m1, const imatrix &m2) 04716 #if(CXSC_INDEX_CHECK) 04717 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04718 #else 04719 throw(); 04720 #endif 04721 04722 INLINE cimatrix operator *(const imatrix &m1, const cimatrix_slice &ms) 04723 #if(CXSC_INDEX_CHECK) 04724 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04725 #else 04726 throw(); 04727 #endif 04728 04729 INLINE cimatrix operator *(const cimatrix &m1, const imatrix_slice &ms) 04730 #if(CXSC_INDEX_CHECK) 04731 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04732 #else 04733 throw(); 04734 #endif 04735 04736 INLINE cimatrix operator *(const imatrix_slice &ms, const cimatrix &m1) 04737 #if(CXSC_INDEX_CHECK) 04738 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04739 #else 04740 throw(); 04741 #endif 04742 04743 INLINE cimatrix operator *(const cimatrix_slice &ms, const imatrix &m1) 04744 #if(CXSC_INDEX_CHECK) 04745 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04746 #else 04747 throw(); 04748 #endif 04749 04750 INLINE cimatrix operator *(const imatrix_slice &ms1, const cimatrix_slice &ms2) 04751 #if(CXSC_INDEX_CHECK) 04752 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04753 #else 04754 throw(); 04755 #endif 04756 04757 INLINE cimatrix operator *(const cimatrix_slice &ms1, const imatrix_slice &ms2) 04758 #if(CXSC_INDEX_CHECK) 04759 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04760 #else 04761 throw(); 04762 #endif 04763 04764 INLINE cimatrix &operator *=(cimatrix &m1,const imatrix &m2) 04765 #if(CXSC_INDEX_CHECK) 04766 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04767 #else 04768 throw(); 04769 #endif 04770 04771 INLINE cimatrix &operator *=(cimatrix &m1,const imatrix_slice &ms) 04772 #if(CXSC_INDEX_CHECK) 04773 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04774 #else 04775 throw(); 04776 #endif 04777 04779 INLINE cimatrix operator |(const imatrix &m1,const cimatrix &m2) 04780 #if(CXSC_INDEX_CHECK) 04781 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04782 #else 04783 throw(); 04784 #endif 04785 04786 INLINE cimatrix operator |(const cimatrix &m1,const imatrix &m2) 04787 #if(CXSC_INDEX_CHECK) 04788 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04789 #else 04790 throw(); 04791 #endif 04792 04793 INLINE cimatrix operator |(const imatrix &m,const cimatrix_slice &ms) 04794 #if(CXSC_INDEX_CHECK) 04795 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04796 #else 04797 throw(); 04798 #endif 04799 04800 INLINE cimatrix operator |(const cimatrix &m,const imatrix_slice &ms) 04801 #if(CXSC_INDEX_CHECK) 04802 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04803 #else 04804 throw(); 04805 #endif 04806 04807 INLINE cimatrix operator |(const imatrix_slice &ms,const cimatrix &m) 04808 #if(CXSC_INDEX_CHECK) 04809 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04810 #else 04811 throw(); 04812 #endif 04813 04814 INLINE cimatrix operator |(const cimatrix_slice &ms,const imatrix &m) 04815 #if(CXSC_INDEX_CHECK) 04816 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04817 #else 04818 throw(); 04819 #endif 04820 04821 INLINE cimatrix operator |(const imatrix_slice &m1,const cimatrix_slice &m2) 04822 #if(CXSC_INDEX_CHECK) 04823 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04824 #else 04825 throw(); 04826 #endif 04827 04828 INLINE cimatrix operator |(const cimatrix_slice &m1,const imatrix_slice &m2) 04829 #if(CXSC_INDEX_CHECK) 04830 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04831 #else 04832 throw(); 04833 #endif 04834 04835 INLINE cimatrix &operator |=(cimatrix &m1,const imatrix &m2) 04836 #if(CXSC_INDEX_CHECK) 04837 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04838 #else 04839 throw(); 04840 #endif 04841 04842 INLINE cimatrix &operator |=(cimatrix &m1,const imatrix_slice &ms) 04843 #if(CXSC_INDEX_CHECK) 04844 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04845 #else 04846 throw(); 04847 #endif 04848 04850 INLINE cimatrix operator &(const imatrix &m1,const cimatrix &m2) 04851 #if(CXSC_INDEX_CHECK) 04852 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04853 #else 04854 throw(); 04855 #endif 04856 04857 INLINE cimatrix operator &(const cimatrix &m1,const imatrix &m2) 04858 #if(CXSC_INDEX_CHECK) 04859 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04860 #else 04861 throw(); 04862 #endif 04863 04864 INLINE cimatrix operator &(const imatrix &m,const cimatrix_slice &ms) 04865 #if(CXSC_INDEX_CHECK) 04866 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04867 #else 04868 throw(); 04869 #endif 04870 04871 INLINE cimatrix operator &(const cimatrix &m,const imatrix_slice &ms) 04872 #if(CXSC_INDEX_CHECK) 04873 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04874 #else 04875 throw(); 04876 #endif 04877 04878 INLINE cimatrix operator &(const imatrix_slice &ms,const cimatrix &m) 04879 #if(CXSC_INDEX_CHECK) 04880 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04881 #else 04882 throw(); 04883 #endif 04884 04885 INLINE cimatrix operator &(const cimatrix_slice &ms,const imatrix &m) 04886 #if(CXSC_INDEX_CHECK) 04887 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04888 #else 04889 throw(); 04890 #endif 04891 04892 INLINE cimatrix operator &(const imatrix_slice &m1,const cimatrix_slice &m2) 04893 #if(CXSC_INDEX_CHECK) 04894 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04895 #else 04896 throw(); 04897 #endif 04898 04899 INLINE cimatrix operator &(const cimatrix_slice &m1,const imatrix_slice &m2) 04900 #if(CXSC_INDEX_CHECK) 04901 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04902 #else 04903 throw(); 04904 #endif 04905 04906 INLINE cimatrix &operator &=(cimatrix &m1,const imatrix &m2) 04907 #if(CXSC_INDEX_CHECK) 04908 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04909 #else 04910 throw(); 04911 #endif 04912 04913 INLINE cimatrix &operator &=(cimatrix &m1,const imatrix_slice &ms) 04914 #if(CXSC_INDEX_CHECK) 04915 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04916 #else 04917 throw(); 04918 #endif 04919 04920 //---------- cmatrix-imatrix ------------------ 04922 INLINE cimatrix operator +(const cmatrix &m1,const imatrix &m2) 04923 #if(CXSC_INDEX_CHECK) 04924 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04925 #else 04926 throw(); 04927 #endif 04928 04929 INLINE cimatrix operator +(const imatrix &m1,const cmatrix &m2) 04930 #if(CXSC_INDEX_CHECK) 04931 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04932 #else 04933 throw(); 04934 #endif 04935 04936 INLINE cimatrix operator +(const cmatrix &m,const imatrix_slice &ms) 04937 #if(CXSC_INDEX_CHECK) 04938 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04939 #else 04940 throw(); 04941 #endif 04942 04943 INLINE cimatrix operator +(const imatrix &m,const cmatrix_slice &ms) 04944 #if(CXSC_INDEX_CHECK) 04945 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04946 #else 04947 throw(); 04948 #endif 04949 04950 INLINE cimatrix operator +(const cmatrix_slice &ms,const imatrix &m) 04951 #if(CXSC_INDEX_CHECK) 04952 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04953 #else 04954 throw(); 04955 #endif 04956 04957 INLINE cimatrix operator +(const imatrix_slice &ms,const cmatrix &m) 04958 #if(CXSC_INDEX_CHECK) 04959 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04960 #else 04961 throw(); 04962 #endif 04963 04964 INLINE cimatrix operator +(const cmatrix_slice &m1,const imatrix_slice &m2) 04965 #if(CXSC_INDEX_CHECK) 04966 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04967 #else 04968 throw(); 04969 #endif 04970 04971 INLINE cimatrix operator +(const imatrix_slice &m1,const cmatrix_slice &m2) 04972 #if(CXSC_INDEX_CHECK) 04973 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04974 #else 04975 throw(); 04976 #endif 04977 04979 INLINE cimatrix operator -(const cmatrix &m1,const imatrix &m2) 04980 #if(CXSC_INDEX_CHECK) 04981 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04982 #else 04983 throw(); 04984 #endif 04985 04986 INLINE cimatrix operator -(const imatrix &m1,const cmatrix &m2) 04987 #if(CXSC_INDEX_CHECK) 04988 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04989 #else 04990 throw(); 04991 #endif 04992 04993 INLINE cimatrix operator -(const cmatrix &m,const imatrix_slice &ms) 04994 #if(CXSC_INDEX_CHECK) 04995 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 04996 #else 04997 throw(); 04998 #endif 04999 05000 INLINE cimatrix operator -(const imatrix &m,const cmatrix_slice &ms) 05001 #if(CXSC_INDEX_CHECK) 05002 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05003 #else 05004 throw(); 05005 #endif 05006 05007 INLINE cimatrix operator -(const cmatrix_slice &ms,const imatrix &m) 05008 #if(CXSC_INDEX_CHECK) 05009 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05010 #else 05011 throw(); 05012 #endif 05013 05014 INLINE cimatrix operator -(const imatrix_slice &ms,const cmatrix &m) 05015 #if(CXSC_INDEX_CHECK) 05016 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05017 #else 05018 throw(); 05019 #endif 05020 05021 INLINE cimatrix operator -(const cmatrix_slice &ms1,const imatrix_slice &ms2) 05022 #if(CXSC_INDEX_CHECK) 05023 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05024 #else 05025 throw(); 05026 #endif 05027 05028 INLINE cimatrix operator -(const imatrix_slice &ms1,const cmatrix_slice &ms2) 05029 #if(CXSC_INDEX_CHECK) 05030 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05031 #else 05032 throw(); 05033 #endif 05034 05036 INLINE cimatrix operator *(const cmatrix &m1, const imatrix &m2) 05037 #if(CXSC_INDEX_CHECK) 05038 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05039 #else 05040 throw(); 05041 #endif 05042 05043 INLINE cimatrix operator *(const imatrix &m1, const cmatrix &m2) 05044 #if(CXSC_INDEX_CHECK) 05045 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05046 #else 05047 throw(); 05048 #endif 05049 05050 INLINE cimatrix operator *(const cmatrix &m1, const imatrix_slice &ms) 05051 #if(CXSC_INDEX_CHECK) 05052 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05053 #else 05054 throw(); 05055 #endif 05056 05057 INLINE cimatrix operator *(const imatrix &m1, const cmatrix_slice &ms) 05058 #if(CXSC_INDEX_CHECK) 05059 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05060 #else 05061 throw(); 05062 #endif 05063 05064 INLINE cimatrix operator *(const cmatrix_slice &ms, const imatrix &m1) 05065 #if(CXSC_INDEX_CHECK) 05066 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05067 #else 05068 throw(); 05069 #endif 05070 05071 INLINE cimatrix operator *(const imatrix_slice &ms, const cmatrix &m1) 05072 #if(CXSC_INDEX_CHECK) 05073 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05074 #else 05075 throw(); 05076 #endif 05077 05078 INLINE cimatrix operator *(const cmatrix_slice &ms1, const imatrix_slice &ms2) 05079 #if(CXSC_INDEX_CHECK) 05080 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05081 #else 05082 throw(); 05083 #endif 05084 05085 INLINE cimatrix operator *(const imatrix_slice &ms1, const cmatrix_slice &ms2) 05086 #if(CXSC_INDEX_CHECK) 05087 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05088 #else 05089 throw(); 05090 #endif 05091 05093 INLINE cimatrix operator |(const cmatrix &m1,const imatrix &m2) 05094 #if(CXSC_INDEX_CHECK) 05095 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05096 #else 05097 throw(); 05098 #endif 05099 05100 INLINE cimatrix operator |(const imatrix &m1,const cmatrix &m2) 05101 #if(CXSC_INDEX_CHECK) 05102 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05103 #else 05104 throw(); 05105 #endif 05106 05107 INLINE cimatrix operator |(const cmatrix &m,const imatrix_slice &ms) 05108 #if(CXSC_INDEX_CHECK) 05109 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05110 #else 05111 throw(); 05112 #endif 05113 05114 INLINE cimatrix operator |(const imatrix &m,const cmatrix_slice &ms) 05115 #if(CXSC_INDEX_CHECK) 05116 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05117 #else 05118 throw(); 05119 #endif 05120 05121 INLINE cimatrix operator |(const cmatrix_slice &ms,const imatrix &m) 05122 #if(CXSC_INDEX_CHECK) 05123 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05124 #else 05125 throw(); 05126 #endif 05127 05128 INLINE cimatrix operator |(const imatrix_slice &ms,const cmatrix &m) 05129 #if(CXSC_INDEX_CHECK) 05130 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05131 #else 05132 throw(); 05133 #endif 05134 05135 INLINE cimatrix operator |(const cmatrix_slice &m1,const imatrix_slice &m2) 05136 #if(CXSC_INDEX_CHECK) 05137 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05138 #else 05139 throw(); 05140 #endif 05141 05142 INLINE cimatrix operator |(const imatrix_slice &m1,const cmatrix_slice &m2) 05143 #if(CXSC_INDEX_CHECK) 05144 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05145 #else 05146 throw(); 05147 #endif 05148 05150 INLINE cimatrix operator &(const cmatrix &m1,const imatrix &m2) 05151 #if(CXSC_INDEX_CHECK) 05152 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05153 #else 05154 throw(); 05155 #endif 05156 05157 INLINE cimatrix operator &(const imatrix &m1,const cmatrix &m2) 05158 #if(CXSC_INDEX_CHECK) 05159 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05160 #else 05161 throw(); 05162 #endif 05163 05164 INLINE cimatrix operator &(const cmatrix &m,const imatrix_slice &ms) 05165 #if(CXSC_INDEX_CHECK) 05166 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05167 #else 05168 throw(); 05169 #endif 05170 05171 INLINE cimatrix operator &(const imatrix &m,const cmatrix_slice &ms) 05172 #if(CXSC_INDEX_CHECK) 05173 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05174 #else 05175 throw(); 05176 #endif 05177 05178 INLINE cimatrix operator &(const cmatrix_slice &ms,const imatrix &m) 05179 #if(CXSC_INDEX_CHECK) 05180 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05181 #else 05182 throw(); 05183 #endif 05184 05185 INLINE cimatrix operator &(const imatrix_slice &ms,const cmatrix &m) 05186 #if(CXSC_INDEX_CHECK) 05187 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05188 #else 05189 throw(); 05190 #endif 05191 05192 INLINE cimatrix operator &(const cmatrix_slice &m1,const imatrix_slice &m2) 05193 #if(CXSC_INDEX_CHECK) 05194 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05195 #else 05196 throw(); 05197 #endif 05198 05199 INLINE cimatrix operator &(const imatrix_slice &m1,const cmatrix_slice &m2) 05200 #if(CXSC_INDEX_CHECK) 05201 throw(ERROR_CIMATRIX_OP_WITH_WRONG_DIM); 05202 #else 05203 throw(); 05204 #endif 05205 05206 //------------- real x complex ------------------------ 05208 INLINE cimatrix operator |(const rmatrix &rv1, const cmatrix &rv2) 05209 #if(CXSC_INDEX_CHECK) 05210 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05211 #else 05212 throw(); 05213 #endif 05214 05215 INLINE cimatrix operator |(const cmatrix &rv1, const rmatrix &rv2) 05216 #if(CXSC_INDEX_CHECK) 05217 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05218 #else 05219 throw(); 05220 #endif 05221 05222 INLINE cimatrix operator |(const cmatrix &rv, const rmatrix_slice &sl) 05223 #if(CXSC_INDEX_CHECK) 05224 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05225 #else 05226 throw(); 05227 #endif 05228 05229 INLINE cimatrix operator |(const rmatrix_slice &sl,const cmatrix &rv) 05230 #if(CXSC_INDEX_CHECK) 05231 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05232 #else 05233 throw(); 05234 #endif 05235 05236 INLINE cimatrix operator |(const cmatrix_slice &sl, const rmatrix &rv) 05237 #if(CXSC_INDEX_CHECK) 05238 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05239 #else 05240 throw(); 05241 #endif 05242 05243 INLINE cimatrix operator |(const rmatrix &rv,const cmatrix_slice &sl) 05244 #if(CXSC_INDEX_CHECK) 05245 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05246 #else 05247 throw(); 05248 #endif 05249 05250 INLINE cimatrix operator |(const cmatrix_slice &sl1, const rmatrix_slice &sl2) 05251 #if(CXSC_INDEX_CHECK) 05252 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05253 #else 05254 throw(); 05255 #endif 05256 05257 INLINE cimatrix operator |(const rmatrix_slice &sl1, const cmatrix_slice &sl2) 05258 #if(CXSC_INDEX_CHECK) 05259 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05260 #else 05261 throw(); 05262 #endif 05263 05264 05265 //------------- complex x complex ------------------------ 05267 INLINE cimatrix operator |(const cmatrix &rv1, const cmatrix &rv2) 05268 #if(CXSC_INDEX_CHECK) 05269 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05270 #else 05271 throw(); 05272 #endif 05273 05274 INLINE cimatrix operator |(const cmatrix &rv1, const cmatrix &rv2) 05275 #if(CXSC_INDEX_CHECK) 05276 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05277 #else 05278 throw(); 05279 #endif 05280 05281 INLINE cimatrix operator |(const cmatrix &rv, const cmatrix_slice &sl) 05282 #if(CXSC_INDEX_CHECK) 05283 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05284 #else 05285 throw(); 05286 #endif 05287 05288 INLINE cimatrix operator |(const cmatrix_slice &sl,const cmatrix &rv) 05289 #if(CXSC_INDEX_CHECK) 05290 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05291 #else 05292 throw(); 05293 #endif 05294 05295 INLINE cimatrix operator |(const cmatrix_slice &sl, const cmatrix &rv) 05296 #if(CXSC_INDEX_CHECK) 05297 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05298 #else 05299 throw(); 05300 #endif 05301 05302 INLINE cimatrix operator |(const cmatrix &rv,const cmatrix_slice &sl) 05303 #if(CXSC_INDEX_CHECK) 05304 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05305 #else 05306 throw(); 05307 #endif 05308 05309 INLINE cimatrix operator |(const cmatrix_slice &sl1, const cmatrix_slice &sl2) 05310 #if(CXSC_INDEX_CHECK) 05311 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05312 #else 05313 throw(); 05314 #endif 05315 05316 INLINE cimatrix operator |(const cmatrix_slice &sl1, const cmatrix_slice &sl2) 05317 #if(CXSC_INDEX_CHECK) 05318 throw(ERROR__OP_WITH_WRONG_DIM<cimatrix>); 05319 #else 05320 throw(); 05321 #endif 05322 05323 05324 //============== Compare Operator ========================== 05325 05326 //-------------- Matrix - Matrix ------------------------- 05327 05329 INLINE bool operator ==(const cimatrix &m1,const cimatrix &m2) throw(); 05331 INLINE bool operator !=(const cimatrix &m1,const cimatrix &m2) throw(); 05333 INLINE bool operator <(const cimatrix &m1,const cimatrix &m2) throw(); 05335 INLINE bool operator <=(const cimatrix &m1,const cimatrix &m2) throw(); 05337 INLINE bool operator >(const cimatrix &m1,const cimatrix &m2) throw(); 05339 INLINE bool operator >=(const cimatrix &m1,const cimatrix &m2) throw(); 05341 INLINE bool operator ==(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05343 INLINE bool operator !=(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05345 INLINE bool operator <(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05347 INLINE bool operator <=(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05349 INLINE bool operator >(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05351 INLINE bool operator >=(const cimatrix &m1,const cimatrix_slice &ms) throw(); 05352 05353 //---------------- Matrix - Matrix_slice ---------------------- 05354 05356 INLINE bool operator ==(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05358 INLINE bool operator !=(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05360 INLINE bool operator <(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05362 INLINE bool operator <=(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05364 INLINE bool operator >(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05366 INLINE bool operator >=(const cimatrix_slice &m1,const cimatrix_slice &m2) throw(); 05367 05368 //=================== Not Operator ============================= 05369 05371 INLINE bool operator !(const cimatrix &ms) throw(); 05373 INLINE bool operator !(const cimatrix_slice &ms) throw(); 05374 05375 //======================== Input / Output ======================== 05376 05378 INLINE std::ostream &operator <<(std::ostream &s,const cimatrix &r) throw(); 05380 INLINE std::ostream &operator <<(std::ostream &s,const cimatrix_slice &r) throw(); 05382 INLINE std::istream &operator >>(std::istream &s,cimatrix &r) throw(); 05384 INLINE std::istream &operator >>(std::istream &s,cimatrix_slice &r) throw(); 05385 05387 rmatrix CompMat ( const cimatrix& ); 05389 cimatrix Id ( const cimatrix& ); 05391 cimatrix transp ( const cimatrix& ); 05393 INLINE int RowLen ( const cimatrix& ); 05395 INLINE int ColLen ( const cimatrix& ); 05397 INLINE int RowLen ( const cimatrix_slice& ); 05399 INLINE int ColLen ( const cimatrix_slice& ); 05401 void DoubleSize ( cimatrix& ); 05402 05403 } // namespace cxsc 05404 05405 05406 #ifdef _CXSC_INCL_INL 05407 #include "matrix.inl" 05408 #include "cimatrix.inl" 05409 #endif 05410 05411 05412 #ifdef CXSC_USE_BLAS 05413 #define _CXSC_BLAS_CIMATRIX 05414 #include "cxsc_blas.inl" 05415 #endif 05416 05417 #endif