00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _CXSC_CIVECTOR_INL_INCLUDED
00027 #define _CXSC_CIVECTOR_INL_INCLUDED
00028
00029 namespace cxsc {
00030
00031 INLINE civector::civector () throw():dat(NULL),l(1),u(0),size(0)
00032 {
00033 }
00034
00035 INLINE civector::civector(const int &i) throw():l(1),u(i),size(i)
00036 {
00037 dat=new cinterval[i];
00038 }
00039
00040 #ifdef OLD_CXSC
00041 INLINE civector::civector(const class index &i) throw():l(1),u(i._int()),size(i._int())
00042 {
00043 dat=new cinterval[i._int()];
00044 }
00045 #endif
00046
00047 INLINE civector::civector(const int &i1,const int &i2)
00048 #if(CXSC_INDEX_CHECK)
00049 throw(ERROR_CIVECTOR_WRONG_BOUNDARIES,ERROR_CIVECTOR_NO_MORE_MEMORY):l(i1),u(i2),size(i2-i1+1)
00050 #else
00051 throw():l(i1),u(i2),size(i2-i1+1)
00052 #endif
00053 {
00054 #if(CXSC_INDEX_CHECK)
00055 if(i1>i2) cxscthrow(ERROR_CIVECTOR_WRONG_BOUNDARIES("civector::civector(const int &i1,const int &i2)"));
00056 #endif
00057 dat=new cinterval[size];
00058 }
00059
00060 INLINE civector::civector(const civector_slice &rs) throw():l(rs.start),u(rs.end),size(rs.end-rs.start+1)
00061 {
00062 dat=new cinterval[size];
00063 for(int i=0, j=l-rs.l;i<size;i++,j++)
00064 dat[i]=rs.dat[j];
00065 }
00066
00067 INLINE civector::civector(const cvector_slice &rs) throw():l(rs.start),u(rs.end),size(rs.end-rs.start+1)
00068 {
00069 dat=new cinterval[size];
00070 for(int i=0, j=l-rs.l;i<size;i++,j++)
00071 dat[i]=rs.dat[j];
00072 }
00073
00074 INLINE civector::civector(const ivector_slice &rs) throw():l(rs.start),u(rs.end),size(rs.end-rs.start+1)
00075 {
00076 dat=new cinterval[size];
00077 for(int i=0, j=l-rs.l;i<size;i++,j++)
00078 dat[i]=rs.dat[j];
00079 }
00080
00081 INLINE civector::civector(const rvector_slice &rs) throw():l(rs.start),u(rs.end),size(rs.end-rs.start+1)
00082 {
00083 dat=new cinterval[size];
00084 for(int i=0, j=l-rs.l;i<size;i++,j++)
00085 dat[i]=rs.dat[j];
00086 }
00087
00088 INLINE civector::civector(const civector &v) throw():l(v.l),u(v.u),size(v.size)
00089 {
00090 dat=new cinterval[size];
00091 for (int i=0;i<size;i++)
00092 dat[i]=v.dat[i];
00093 }
00094
00095 INLINE civector::civector(const cinterval &r) throw():l(1),u(1),size(1)
00096 {
00097 dat=new cinterval[1];
00098 *dat=r;
00099 }
00100
00101 INLINE civector::civector(const cvector &v) throw():l(v.l),u(v.u),size(v.size)
00102 {
00103 dat=new cinterval[size];
00104 for (int i=0;i<size;i++)
00105 dat[i]=v.dat[i];
00106 }
00107
00108 INLINE civector::civector(const ivector &v) throw():l(v.l),u(v.u),size(v.size)
00109 {
00110 dat=new cinterval[size];
00111 for (int i=0;i<size;i++)
00112 dat[i]=v.dat[i];
00113 }
00114
00115 INLINE civector::civector(const rvector &v) throw():l(v.l),u(v.u),size(v.size)
00116 {
00117 dat=new cinterval[size];
00118 for (int i=0;i<size;i++)
00119 dat[i]=v.dat[i];
00120 }
00121
00122 INLINE civector::civector(const real &r) throw():l(1),u(1),size(1)
00123 {
00124 dat=new cinterval[1];
00125 *dat=r;
00126 }
00127
00128 INLINE civector::civector(const interval &r) throw():l(1),u(1),size(1)
00129 {
00130 dat=new cinterval[1];
00131 *dat=r;
00132 }
00133
00134 INLINE civector::civector(const complex &r) throw():l(1),u(1),size(1)
00135 {
00136 dat=new cinterval[1];
00137 *dat=r;
00138 }
00139
00140 INLINE cinterval & civector::operator [](const int &i) const
00141 #if(CXSC_INDEX_CHECK)
00142 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC)
00143 #else
00144 throw()
00145 #endif
00146 {
00147 #if(CXSC_INDEX_CHECK)
00148 if(i<l||i>u) cxscthrow(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC("cinterval & civector::operator [](const int &i)const "));
00149 #endif
00150 return dat[i-l];
00151 }
00152
00153 INLINE cinterval & civector::operator [](const int &i)
00154 #if(CXSC_INDEX_CHECK)
00155 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC)
00156 #else
00157 throw()
00158 #endif
00159 {
00160 #if(CXSC_INDEX_CHECK)
00161 if(i<l||i>u) cxscthrow(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC("cinterval & civector::operator [](const int &i)"));
00162 #endif
00163 return dat[i-l];
00164 }
00165
00166 INLINE cinterval & civector_slice::operator [](const int &i) const
00167 #if(CXSC_INDEX_CHECK)
00168 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC)
00169 #else
00170 throw()
00171 #endif
00172 {
00173 #if(CXSC_INDEX_CHECK)
00174 if(i<start||i>end) cxscthrow(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC("cinterval & civector_slice::operator [](const int &i) const"));
00175 #endif
00176 return dat[i-l];
00177 }
00178
00179
00180 INLINE cinterval & civector_slice::operator [](const int &i)
00181 #if(CXSC_INDEX_CHECK)
00182 throw(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC)
00183 #else
00184 throw()
00185 #endif
00186 {
00187 #if(CXSC_INDEX_CHECK)
00188 if(i<start||i>end) cxscthrow(ERROR_CIVECTOR_ELEMENT_NOT_IN_VEC("cinterval & civector_slice::operator [](const int &i)"));
00189 #endif
00190 return dat[i-l];
00191 }
00192
00193
00194
00195 INLINE civector_slice civector::operator ()(const int &i)
00196 #if(CXSC_INDEX_CHECK)
00197 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG)
00198 #else
00199 throw()
00200 #endif
00201 {
00202 #if(CXSC_INDEX_CHECK)
00203 if(1<l||i>u) cxscthrow(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG("civector_slice civector::operator ()(const int &i)"));
00204 #endif
00205 return civector_slice(*this,1,i);
00206 }
00207
00208 INLINE civector_slice civector::operator ()(const int &i1,const int &i2)
00209 #if(CXSC_INDEX_CHECK)
00210 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG)
00211 #else
00212 throw()
00213 #endif
00214 {
00215 #if(CXSC_INDEX_CHECK)
00216 if(i1<l||i2>u) cxscthrow(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG("civector_slice civector::operator ()(const int &i1,const int &i2)"));
00217 #endif
00218 return civector_slice(*this,i1,i2);
00219 }
00220
00221 INLINE civector_slice civector_slice::operator ()(const int &i)
00222 #if(CXSC_INDEX_CHECK)
00223 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG)
00224 #else
00225 throw()
00226 #endif
00227 {
00228 #if(CXSC_INDEX_CHECK)
00229 if(1<start||i>end) cxscthrow(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG("civector_slice civector_slice::operator ()(const int &i)"));
00230 #endif
00231 return civector_slice(*this,1,i);
00232 }
00233
00234 INLINE civector_slice civector_slice::operator ()(const int &i1,const int &i2)
00235 #if(CXSC_INDEX_CHECK)
00236 throw(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG)
00237 #else
00238 throw()
00239 #endif
00240 {
00241 #if(CXSC_INDEX_CHECK)
00242 if(i1<start||i2>end) cxscthrow(ERROR_CIVECTOR_SUB_ARRAY_TOO_BIG("civector_slice civector_slice::operator ()(const int &i1,const int &i2)"));
00243 #endif
00244 return civector_slice(*this,i1,i2);
00245 }
00246
00247 INLINE cinterval::cinterval(const civector &rv)
00248 #if(CXSC_INDEX_CHECK)
00249 throw(ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ)
00250 #else
00251 throw()
00252 #endif
00253 {
00254 #if(CXSC_INDEX_CHECK)
00255 if(rv.size>1) cxscthrow(ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ("cinterval::cinterval(const civector &rv)"));
00256 else if(rv.size<1) cxscthrow(ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ("cinterval::cinterval(const civector &rv)"));
00257 #endif
00258 *this=rv.dat[0];
00259 }
00260
00261 INLINE cinterval::cinterval(const civector_slice &sl)
00262 #if(CXSC_INDEX_CHECK)
00263 throw(ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ)
00264 #else
00265 throw()
00266 #endif
00267 {
00268 #if(CXSC_INDEX_CHECK)
00269 if(sl.size>1) cxscthrow(ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ("cinterval::cinterval(const civector_slice &sl)"));
00270 else if(sl.size<1) cxscthrow(ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ("cinterval::cinterval(const civector_slice &sl)"));
00271 #endif
00272 *this=sl.dat[sl.start-sl.l];
00273 }
00274
00280 INLINE civector _civector(const cinterval &r) throw() { return civector(r); }
00281
00287 INLINE civector _civector(const real &r) throw() { return civector(r); }
00293 INLINE civector _civector(const rvector_slice &rs) throw() { return civector(rs); }
00299 INLINE civector _civector(const rvector &rs) throw() { return civector(rs); }
00300
00306 INLINE civector _civector(const complex &r) throw() { return civector(r); }
00312 INLINE civector _civector(const cvector_slice &rs) throw() { return civector(rs); }
00318 INLINE civector _civector(const cvector &rs) throw() { return civector(rs); }
00319
00325 INLINE civector _civector(const interval &r) throw() { return civector(r); }
00331 INLINE civector _civector(const ivector_slice &rs) throw() { return civector(rs); }
00337 INLINE civector _civector(const ivector &rs) throw() { return civector(rs); }
00338
00339 INLINE civector &civector::operator =(const civector &rv) throw() { return _vvassign<civector,civector,cinterval>(*this,rv); }
00340 INLINE civector &civector::operator =(const cinterval &r) throw() { return _vsassign<civector,cinterval>(*this,r); }
00341 INLINE civector::operator void*() throw() { return _vvoid(*this); }
00342 INLINE civector_slice & civector_slice::operator =(const civector_slice &sl)
00343 #if(CXSC_INDEX_CHECK)
00344 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00345 #else
00346 throw()
00347 #endif
00348 { return _vsvsassign(*this,sl); }
00349 INLINE civector_slice & civector_slice::operator =(const civector &rv)
00350 #if(CXSC_INDEX_CHECK)
00351 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00352 #else
00353 throw()
00354 #endif
00355 { return _vsvassign(*this,rv); }
00356 INLINE civector_slice & civector_slice::operator =(const cinterval &r) throw() { return _vssassign<civector_slice,cinterval>(*this,r); }
00357 INLINE civector_slice & civector_slice::operator =(const cimatrix &m)
00358 #if(CXSC_INDEX_CHECK)
00359 throw(ERROR__OP_WITH_WRONG_DIM<civector>,ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ)
00360 #else
00361 throw()
00362 #endif
00363 { return _vsvassign(*this,civector(m)); }
00364 INLINE civector_slice::operator void*() throw() { return _vsvoid(*this); }
00365
00366
00367
00368
00369
00370 INLINE civector &SetInf(civector &iv,const cvector &rv)
00371 #if(CXSC_INDEX_CHECK)
00372 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00373 #else
00374 throw()
00375 #endif
00376 { return _vvsetinf(iv,rv); }
00377 INLINE civector_slice &SetInf(civector_slice &iv,const cvector &rv)
00378 #if(CXSC_INDEX_CHECK)
00379 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00380 #else
00381 throw()
00382 #endif
00383 { return _vsvsetinf(iv,rv); }
00384 INLINE civector &SetInf(civector &iv,const cvector_slice &rv)
00385 #if(CXSC_INDEX_CHECK)
00386 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00387 #else
00388 throw()
00389 #endif
00390 { return _vvssetinf(iv,rv); }
00391 INLINE civector_slice &SetInf(civector_slice &iv,const cvector_slice &rv)
00392 #if(CXSC_INDEX_CHECK)
00393 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00394 #else
00395 throw()
00396 #endif
00397 { return _vsvssetinf(iv,rv); }
00398 INLINE civector &UncheckedSetInf(civector &iv,const cvector &rv)
00399 #if(CXSC_INDEX_CHECK)
00400 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00401 #else
00402 throw()
00403 #endif
00404 { return _vvusetinf(iv,rv); }
00405 INLINE civector_slice &UncheckedSetInf(civector_slice &iv,const cvector &rv)
00406 #if(CXSC_INDEX_CHECK)
00407 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00408 #else
00409 throw()
00410 #endif
00411 { return _vsvusetinf(iv,rv); }
00412 INLINE civector &UncheckedSetInf(civector &iv,const cvector_slice &rv)
00413 #if(CXSC_INDEX_CHECK)
00414 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00415 #else
00416 throw()
00417 #endif
00418 { return _vvsusetinf(iv,rv); }
00419 INLINE civector_slice &UncheckedSetInf(civector_slice &iv,const cvector_slice &rv)
00420 #if(CXSC_INDEX_CHECK)
00421 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00422 #else
00423 throw()
00424 #endif
00425 { return _vsvsusetinf(iv,rv); }
00426
00427 INLINE civector &SetSup(civector &iv,const cvector &rv)
00428 #if(CXSC_INDEX_CHECK)
00429 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00430 #else
00431 throw()
00432 #endif
00433 { return _vvsetsup(iv,rv); }
00434 INLINE civector_slice &SetSup(civector_slice &iv,const cvector &rv)
00435 #if(CXSC_INDEX_CHECK)
00436 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00437 #else
00438 throw()
00439 #endif
00440 { return _vsvsetsup(iv,rv); }
00441 INLINE civector &SetSup(civector &iv,const cvector_slice &rv)
00442 #if(CXSC_INDEX_CHECK)
00443 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00444 #else
00445 throw()
00446 #endif
00447 { return _vvssetsup(iv,rv); }
00448 INLINE civector_slice &SetSup(civector_slice &iv,const cvector_slice &rv)
00449 #if(CXSC_INDEX_CHECK)
00450 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00451 #else
00452 throw()
00453 #endif
00454 { return _vsvssetsup(iv,rv); }
00455 INLINE civector &UncheckedSetSup(civector &iv,const cvector &rv)
00456 #if(CXSC_INDEX_CHECK)
00457 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00458 #else
00459 throw()
00460 #endif
00461 { return _vvusetsup(iv,rv); }
00462 INLINE civector_slice &UncheckedSetSup(civector_slice &iv,const cvector &rv)
00463 #if(CXSC_INDEX_CHECK)
00464 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00465 #else
00466 throw()
00467 #endif
00468 { return _vsvusetsup(iv,rv); }
00469 INLINE civector &UncheckedSetSup(civector &iv,const cvector_slice &rv)
00470 #if(CXSC_INDEX_CHECK)
00471 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00472 #else
00473 throw()
00474 #endif
00475 { return _vvsusetsup(iv,rv); }
00476 INLINE civector_slice &UncheckedSetSup(civector_slice &iv,const cvector_slice &rv)
00477 #if(CXSC_INDEX_CHECK)
00478 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00479 #else
00480 throw()
00481 #endif
00482 { return _vsvsusetsup(iv,rv); }
00483
00484 INLINE civector &SetRe(civector &iv,const ivector &rv)
00485 #if(CXSC_INDEX_CHECK)
00486 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00487 #else
00488 throw()
00489 #endif
00490 { return _vvsetre(iv,rv); }
00491 INLINE civector_slice &SetRe(civector_slice &iv,const ivector &rv)
00492 #if(CXSC_INDEX_CHECK)
00493 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00494 #else
00495 throw()
00496 #endif
00497 { return _vsvsetre(iv,rv); }
00498 INLINE civector &SetRe(civector &iv,const ivector_slice &rv)
00499 #if(CXSC_INDEX_CHECK)
00500 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00501 #else
00502 throw()
00503 #endif
00504 { return _vvssetre(iv,rv); }
00505 INLINE civector_slice &SetRe(civector_slice &iv,const ivector_slice &rv)
00506 #if(CXSC_INDEX_CHECK)
00507 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00508 #else
00509 throw()
00510 #endif
00511 { return _vsvssetre(iv,rv); }
00512
00513 INLINE civector &SetIm(civector &iv,const ivector &rv)
00514 #if(CXSC_INDEX_CHECK)
00515 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00516 #else
00517 throw()
00518 #endif
00519 { return _vvsetim(iv,rv); }
00520 INLINE civector_slice &SetIm(civector_slice &iv,const ivector &rv)
00521 #if(CXSC_INDEX_CHECK)
00522 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00523 #else
00524 throw()
00525 #endif
00526 { return _vsvsetim(iv,rv); }
00527 INLINE civector &SetIm(civector &iv,const ivector_slice &rv)
00528 #if(CXSC_INDEX_CHECK)
00529 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00530 #else
00531 throw()
00532 #endif
00533 { return _vvssetim(iv,rv); }
00534 INLINE civector_slice &SetIm(civector_slice &iv,const ivector_slice &rv)
00535 #if(CXSC_INDEX_CHECK)
00536 throw(ERROR_CIVECTOR_OP_WITH_WRONG_DIM)
00537 #else
00538 throw()
00539 #endif
00540 { return _vsvssetim(iv,rv); }
00541
00542 INLINE civector &SetSup(civector &iv,const complex &r) throw() { return _vssetsup(iv,r); }
00543 INLINE civector &SetInf(civector &iv,const complex &r) throw() { return _vssetinf(iv,r); }
00544 INLINE civector &UncheckedSetSup(civector &iv,const complex &r) throw() { return _vsusetsup(iv,r); }
00545 INLINE civector &SetUncheckedInf(civector &iv,const complex &r) throw() { return _vsusetinf(iv,r); }
00546 INLINE civector &SetRe(civector &iv,const interval &r) throw() { return _vssetre(iv,r); }
00547 INLINE civector &SetIm(civector &iv,const interval &r) throw() { return _vssetim(iv,r); }
00548
00549 INLINE civector_slice &SetSup(civector_slice &iv,const complex &r) throw() { return _vsssetsup(iv,r); }
00550 INLINE civector_slice &SetInf(civector_slice &iv,const complex &r) throw() { return _vsssetinf(iv,r); }
00551 INLINE civector_slice &UncheckedSetSup(civector_slice &iv,const complex &r) throw() { return _vssusetsup(iv,r); }
00552 INLINE civector_slice &SetUncheckedInf(civector_slice &iv,const complex &r) throw() { return _vssusetinf(iv,r); }
00553 INLINE civector_slice &SetRe(civector_slice &iv,const interval &r) throw() { return _vsssetre(iv,r); }
00554 INLINE civector_slice &SetIm(civector_slice &iv,const interval &r) throw() { return _vsssetim(iv,r); }
00555
00556 INLINE ivector Re(const civector &v) throw()
00557 {
00558 ivector erg(v.l,v.u);
00559
00560 for(int i=0;i<v.size;i++)
00561 erg[i+v.l]=Re(v.dat[i]);
00562
00563 return erg;
00564 }
00565
00566 INLINE ivector Re(const civector_slice &sl) throw()
00567 {
00568 ivector erg(sl.start,sl.end);
00569
00570 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00571 erg[i+sl.start]=Re(sl.dat[j]);
00572
00573 return erg;
00574 }
00575
00576 INLINE rvector InfRe(const civector &v) throw()
00577 {
00578 rvector erg(v.l,v.u);
00579
00580 for(int i=0;i<v.size;i++)
00581 erg.dat[i]=InfRe(v.dat[i]);
00582
00583 return erg;
00584 }
00585
00586 INLINE rvector InfRe(const civector_slice &sl) throw()
00587 {
00588 rvector erg(sl.start,sl.end);
00589
00590 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00591 erg.dat[i]=InfRe(sl.dat[j]);
00592
00593 return erg;
00594 }
00595
00596 INLINE ivector Im(const civector &v) throw()
00597 {
00598 ivector erg(v.l,v.u);
00599
00600 for(int i=0;i<v.size;i++)
00601 erg[i+v.l]=Im(v.dat[i]);
00602
00603 return erg;
00604 }
00605
00606 INLINE ivector Im(const civector_slice &sl) throw()
00607 {
00608 ivector erg(sl.start,sl.end);
00609
00610 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00611 erg[i+sl.start]=Im(sl.dat[j]);
00612
00613 return erg;
00614 }
00615
00616 INLINE rvector InfIm(const civector &v) throw()
00617 {
00618 rvector erg(v.l,v.u);
00619
00620 for(int i=0;i<v.size;i++)
00621 erg.dat[i]=InfIm(v.dat[i]);
00622
00623 return erg;
00624 }
00625
00626 INLINE rvector InfIm(const civector_slice &sl) throw()
00627 {
00628 rvector erg(sl.start,sl.end);
00629
00630 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00631 erg.dat[i]=InfIm(sl.dat[j]);
00632
00633 return erg;
00634 }
00635
00636
00637 INLINE rvector SupIm(const civector &v) throw()
00638 {
00639 rvector erg(v.l,v.u);
00640
00641 for(int i=0;i<v.size;i++)
00642 erg.dat[i]=SupIm(v.dat[i]);
00643
00644 return erg;
00645 }
00646
00647 INLINE rvector SupIm(const civector_slice &sl) throw()
00648 {
00649 rvector erg(sl.start,sl.end);
00650
00651 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00652 erg.dat[i]=SupIm(sl.dat[j]);
00653
00654 return erg;
00655 }
00656
00657
00658
00659 INLINE rvector SupRe(const civector &v) throw()
00660 {
00661 rvector erg(v.l,v.u);
00662
00663 for(int i=0;i<v.size;i++)
00664 erg.dat[i]=SupRe(v.dat[i]);
00665
00666 return erg;
00667 }
00668
00669 INLINE rvector SupRe(const civector_slice &sl) throw()
00670 {
00671 rvector erg(sl.start,sl.end);
00672
00673 for(int i=0,j=sl.start-sl.l;i<sl.size;i++,j++)
00674 erg.dat[i]=SupRe(sl.dat[j]);
00675
00676 return erg;
00677 }
00678
00679 INLINE void Resize(civector &rv) throw() { _vresize(rv); }
00680 INLINE void Resize(civector &rv, const int &len)
00681 #if(CXSC_INDEX_CHECK)
00682 throw(ERROR__WRONG_BOUNDARIES<civector>)
00683 #else
00684 throw()
00685 #endif
00686 { _vresize<class civector,class cinterval>(rv,len); }
00687 INLINE void Resize(civector &rv, const int &lb, const int &ub)
00688 #if(CXSC_INDEX_CHECK)
00689 throw(ERROR__WRONG_BOUNDARIES<civector>)
00690 #else
00691 throw()
00692 #endif
00693 { _vresize<class civector,class cinterval>(rv,lb,ub); }
00694
00695 INLINE civector conj(const civector &rv) throw() { return _vconj<civector>(rv); }
00696 INLINE civector conj(const civector_slice &sl) throw() { return _vsconj<civector_slice,civector>(sl); }
00697
00698 INLINE ivector abs(const civector &rv) throw() { return _vabs<civector,ivector>(rv); }
00699 INLINE ivector abs(const civector_slice &sl) throw() { return _vsabs<civector_slice,ivector>(sl); }
00700 INLINE cvector diam(const civector &v) throw() { return _vdiam<civector,cvector>(v); }
00701 INLINE cvector diam(const civector_slice &v) throw() { return _vsdiam<civector_slice,cvector>(v); }
00702 INLINE cvector mid(const civector &v) throw() { return _vmid<civector,cvector>(v); }
00703 INLINE cvector mid(const civector_slice &v) throw() { return _vsmid<civector_slice,cvector>(v); }
00704 INLINE cvector Inf(const civector &v) throw() { return _vinf<civector,cvector>(v); }
00705 INLINE cvector Inf(const civector_slice &v) throw() { return _vsinf<civector_slice,cvector>(v); }
00706 INLINE cvector Sup(const civector &v) throw() { return _vsup<civector,cvector>(v); }
00707 INLINE cvector Sup(const civector_slice &v) throw() { return _vssup<civector_slice,cvector>(v); }
00708 INLINE bool operator !(const civector &rv) throw() { return _vnot(rv); }
00709 INLINE bool operator !(const civector_slice &sl) throw() { return _vsnot(sl); }
00710
00711
00712
00713
00714
00715 INLINE civector operator *(const civector &rv, const cinterval &s) throw() { return _vsmult<civector,cinterval,civector>(rv,s); }
00716 INLINE civector operator *(const civector_slice &sl, const cinterval &s) throw() { return _vssmult<civector_slice,cinterval,civector>(sl,s); }
00717 INLINE civector operator *(const cinterval &s, const civector &rv) throw() { return _vsmult<civector,cinterval,civector>(rv,s); }
00718 INLINE civector operator *(const cinterval &s, const civector_slice &sl) throw() { return _vssmult<civector_slice,cinterval,civector>(sl,s); }
00719 INLINE civector &operator *=(civector &rv,const cinterval &r) throw() { return _vsmultassign(rv,r); }
00720 INLINE civector_slice &civector_slice::operator *=(const cinterval &r) throw() { return _vssmultassign(*this,r); }
00721
00722 INLINE civector operator /(const civector &rv, const cinterval &s) throw() { return _vsdiv<civector,cinterval,civector>(rv,s); }
00723 INLINE civector operator /(const civector_slice &sl, const cinterval &s) throw() { return _vssdiv<civector_slice,cinterval,civector>(sl,s); }
00724 INLINE civector &operator /=(civector &rv,const cinterval &r) throw() { return _vsdivassign(rv,r); }
00725 INLINE civector_slice &civector_slice::operator /=(const cinterval &r) throw() { return _vssdivassign(*this,r); }
00726
00727
00728
00729 INLINE civector operator *(const civector &rv, const real &s) throw() { return _vsmult<civector,real,civector>(rv,s); }
00730 INLINE civector operator *(const civector_slice &sl, const real &s) throw() { return _vssmult<civector_slice,real,civector>(sl,s); }
00731 INLINE civector operator *(const real &s, const civector &rv) throw() { return _vsmult<civector,real,civector>(rv,s); }
00732 INLINE civector operator *(const real &s, const civector_slice &sl) throw() { return _vssmult<civector_slice,real,civector>(sl,s); }
00733 INLINE civector &operator *=(civector &rv,const real &r) throw() { return _vsmultassign(rv,r); }
00734 INLINE civector_slice &civector_slice::operator *=(const real &r) throw() { return _vssmultassign(*this,r); }
00735
00736 INLINE civector operator /(const civector &rv, const real &s) throw() { return _vsdiv<civector,real,civector>(rv,s); }
00737 INLINE civector operator /(const civector_slice &sl, const real &s) throw() { return _vssdiv<civector_slice,real,civector>(sl,s); }
00738 INLINE civector &operator /=(civector &rv,const real &r) throw() { return _vsdivassign(rv,r); }
00739 INLINE civector_slice &civector_slice::operator /=(const real &r) throw() { return _vssdivassign(*this,r); }
00740
00741 INLINE civector operator *(const rvector &rv, const cinterval &s) throw() { return _vsmult<rvector,cinterval,civector>(rv,s); }
00742 INLINE civector operator *(const rvector_slice &sl, const cinterval &s) throw() { return _vssmult<rvector_slice,cinterval,civector>(sl,s); }
00743 INLINE civector operator *(const cinterval &s, const rvector &rv) throw() { return _vsmult<rvector,cinterval,civector>(rv,s); }
00744 INLINE civector operator *(const cinterval &s, const rvector_slice &sl) throw() { return _vssmult<rvector_slice,cinterval,civector>(sl,s); }
00745
00746 INLINE civector operator /(const rvector &rv, const cinterval &s) throw() { return _vsdiv<rvector,cinterval,civector>(rv,s); }
00747 INLINE civector operator /(const rvector_slice &sl, const cinterval &s) throw() { return _vssdiv<rvector_slice,cinterval,civector>(sl,s); }
00748
00749
00750
00751 INLINE civector operator *(const civector &rv, const complex &s) throw() { return _vsmult<civector,complex,civector>(rv,s); }
00752 INLINE civector operator *(const civector_slice &sl, const complex &s) throw() { return _vssmult<civector_slice,complex,civector>(sl,s); }
00753 INLINE civector operator *(const complex &s, const civector &rv) throw() { return _vsmult<civector,complex,civector>(rv,s); }
00754 INLINE civector operator *(const complex &s, const civector_slice &sl) throw() { return _vssmult<civector_slice,complex,civector>(sl,s); }
00755 INLINE civector &operator *=(civector &rv,const complex &r) throw() { return _vsmultassign(rv,r); }
00756 INLINE civector_slice &civector_slice::operator *=(const complex &r) throw() { return _vssmultassign(*this,r); }
00757
00758 INLINE civector operator /(const civector &rv, const complex &s) throw() { return _vsdiv<civector,complex,civector>(rv,s); }
00759 INLINE civector operator /(const civector_slice &sl, const complex &s) throw() { return _vssdiv<civector_slice,complex,civector>(sl,s); }
00760 INLINE civector &operator /=(civector &rv,const complex &r) throw() { return _vsdivassign(rv,r); }
00761 INLINE civector_slice &civector_slice::operator /=(const complex &r) throw() { return _vssdivassign(*this,r); }
00762
00763 INLINE civector operator *(const cvector &rv, const cinterval &s) throw() { return _vsmult<cvector,cinterval,civector>(rv,s); }
00764 INLINE civector operator *(const cvector_slice &sl, const cinterval &s) throw() { return _vssmult<cvector_slice,cinterval,civector>(sl,s); }
00765 INLINE civector operator *(const cinterval &s, const cvector &rv) throw() { return _vsmult<cvector,cinterval,civector>(rv,s); }
00766 INLINE civector operator *(const cinterval &s, const cvector_slice &sl) throw() { return _vssmult<cvector_slice,cinterval,civector>(sl,s); }
00767
00768 INLINE civector operator /(const cvector &rv, const cinterval &s) throw() { return _vsdiv<cvector,cinterval,civector>(rv,s); }
00769 INLINE civector operator /(const cvector_slice &sl, const cinterval &s) throw() { return _vssdiv<cvector_slice,cinterval,civector>(sl,s); }
00770
00771
00772
00773 INLINE civector operator *(const civector &rv, const interval &s) throw() { return _vsmult<civector,interval,civector>(rv,s); }
00774 INLINE civector operator *(const civector_slice &sl, const interval &s) throw() { return _vssmult<civector_slice,interval,civector>(sl,s); }
00775 INLINE civector operator *(const interval &s, const civector &rv) throw() { return _vsmult<civector,interval,civector>(rv,s); }
00776 INLINE civector operator *(const interval &s, const civector_slice &sl) throw() { return _vssmult<civector_slice,interval,civector>(sl,s); }
00777 INLINE civector &operator *=(civector &rv,const interval &r) throw() { return _vsmultassign(rv,r); }
00778 INLINE civector_slice &civector_slice::operator *=(const interval &r) throw() { return _vssmultassign(*this,r); }
00779
00780 INLINE civector operator /(const civector &rv, const interval &s) throw() { return _vsdiv<civector,interval,civector>(rv,s); }
00781 INLINE civector operator /(const civector_slice &sl, const interval &s) throw() { return _vssdiv<civector_slice,interval,civector>(sl,s); }
00782 INLINE civector &operator /=(civector &rv,const interval &r) throw() { return _vsdivassign(rv,r); }
00783 INLINE civector_slice &civector_slice::operator /=(const interval &r) throw() { return _vssdivassign(*this,r); }
00784
00785 INLINE civector operator *(const ivector &rv, const cinterval &s) throw() { return _vsmult<ivector,cinterval,civector>(rv,s); }
00786 INLINE civector operator *(const ivector_slice &sl, const cinterval &s) throw() { return _vssmult<ivector_slice,cinterval,civector>(sl,s); }
00787 INLINE civector operator *(const cinterval &s, const ivector &rv) throw() { return _vsmult<ivector,cinterval,civector>(rv,s); }
00788 INLINE civector operator *(const cinterval &s, const ivector_slice &sl) throw() { return _vssmult<ivector_slice,cinterval,civector>(sl,s); }
00789
00790 INLINE civector operator /(const ivector &rv, const cinterval &s) throw() { return _vsdiv<ivector,cinterval,civector>(rv,s); }
00791 INLINE civector operator /(const ivector_slice &sl, const cinterval &s) throw() { return _vssdiv<ivector_slice,cinterval,civector>(sl,s); }
00792
00793
00794
00795
00796 INLINE std::ostream &operator <<(std::ostream &s, const civector &rv) throw() { return _vout(s,rv); }
00797 INLINE std::ostream &operator <<(std::ostream &o, const civector_slice &sl) throw() { return _vsout(o,sl); }
00798 INLINE std::istream &operator >>(std::istream &s, civector &rv) throw() { return _vin(s,rv); }
00799 INLINE std::istream &operator >>(std::istream &s, civector_slice &rv) throw() { return _vsin(s,rv); }
00800
00801
00802 INLINE civector & civector::operator =(const civector_slice &sl) throw() { return _vvsassign<civector,civector_slice,cinterval>(*this,sl); }
00803
00804
00805 INLINE cinterval operator *(const civector & rv1, const civector &rv2)
00806 #if(CXSC_INDEX_CHECK)
00807 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00808 #else
00809 throw()
00810 #endif
00811 { return _vvcimult<civector,civector,cinterval>(rv1,rv2); }
00812 INLINE cinterval operator *(const civector_slice &sl, const civector &rv)
00813 #if(CXSC_INDEX_CHECK)
00814 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00815 #else
00816 throw()
00817 #endif
00818 { return _vsvcimult<civector_slice,civector,cinterval>(sl,rv); }
00819 INLINE cinterval operator *(const civector &rv, const civector_slice &sl)
00820 #if(CXSC_INDEX_CHECK)
00821 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00822 #else
00823 throw()
00824 #endif
00825 { return _vsvcimult<civector_slice,civector,cinterval>(sl,rv); }
00826 INLINE cinterval operator *(const civector_slice & sl1, const civector_slice &sl2)
00827 #if(CXSC_INDEX_CHECK)
00828 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00829 #else
00830 throw()
00831 #endif
00832 { return _vsvscimult<civector_slice,civector_slice,cinterval>(sl1,sl2); }
00833
00834 INLINE const civector &operator +(const civector &rv) throw() { return rv; }
00835 INLINE civector operator +(const civector_slice &sl) throw() { return sl; }
00836 INLINE civector operator +(const civector &rv1, const civector &rv2)
00837 #if(CXSC_INDEX_CHECK)
00838 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00839 #else
00840 throw()
00841 #endif
00842 { return _vvplus<civector,civector,civector>(rv1,rv2); }
00843 INLINE civector operator +(const civector &rv, const civector_slice &sl)
00844 #if(CXSC_INDEX_CHECK)
00845 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00846 #else
00847 throw()
00848 #endif
00849 { return _vvsplus<civector,civector_slice,civector>(rv,sl); }
00850 INLINE civector operator +(const civector_slice &sl, const civector &rv)
00851 #if(CXSC_INDEX_CHECK)
00852 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00853 #else
00854 throw()
00855 #endif
00856 { return _vvsplus<civector,civector_slice,civector>(rv,sl); }
00857 INLINE civector operator +(const civector_slice &sl1, const civector_slice &sl2)
00858 #if(CXSC_INDEX_CHECK)
00859 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00860 #else
00861 throw()
00862 #endif
00863 { return _vsvsplus<civector_slice,civector_slice,civector>(sl1,sl2); }
00864 INLINE civector & operator +=(civector &rv1, const civector &rv2)
00865 #if(CXSC_INDEX_CHECK)
00866 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00867 #else
00868 throw()
00869 #endif
00870 { return _vvplusassign(rv1,rv2); }
00871 INLINE civector &operator +=(civector &rv, const civector_slice &sl)
00872 #if(CXSC_INDEX_CHECK)
00873 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00874 #else
00875 throw()
00876 #endif
00877 { return _vvsplusassign(rv,sl); }
00878 INLINE civector_slice &civector_slice::operator +=(const civector &rv)
00879 #if(CXSC_INDEX_CHECK)
00880 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00881 #else
00882 throw()
00883 #endif
00884 { return _vsvplusassign(*this,rv); }
00885 INLINE civector_slice &civector_slice::operator +=(const civector_slice &sl2)
00886 #if(CXSC_INDEX_CHECK)
00887 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00888 #else
00889 throw()
00890 #endif
00891 { return _vsvsplusassign(*this,sl2); }
00892
00893 INLINE civector operator -(const civector &rv) throw() { return _vminus(rv); }
00894 INLINE civector operator -(const civector_slice &sl) throw() { return _vsminus<civector_slice,civector>(sl); }
00895 INLINE civector operator -(const civector &rv1, const civector &rv2)
00896 #if(CXSC_INDEX_CHECK)
00897 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00898 #else
00899 throw()
00900 #endif
00901 { return _vvminus<civector,civector,civector>(rv1,rv2); }
00902 INLINE civector operator -(const civector &rv, const civector_slice &sl)
00903 #if(CXSC_INDEX_CHECK)
00904 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00905 #else
00906 throw()
00907 #endif
00908 { return _vvsminus<civector,civector_slice,civector>(rv,sl); }
00909 INLINE civector operator -(const civector_slice &sl, const civector &rv)
00910 #if(CXSC_INDEX_CHECK)
00911 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00912 #else
00913 throw()
00914 #endif
00915 { return _vsvminus<civector_slice,civector,civector>(sl,rv); }
00916 INLINE civector operator -(const civector_slice &sl1, const civector_slice &sl2)
00917 #if(CXSC_INDEX_CHECK)
00918 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00919 #else
00920 throw()
00921 #endif
00922 { return _vsvsminus<civector_slice,civector_slice,civector>(sl1,sl2); }
00923 INLINE civector & operator -=(civector &rv1, const civector &rv2)
00924 #if(CXSC_INDEX_CHECK)
00925 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00926 #else
00927 throw()
00928 #endif
00929 { return _vvminusassign(rv1,rv2); }
00930 INLINE civector &operator -=(civector &rv, const civector_slice &sl)
00931 #if(CXSC_INDEX_CHECK)
00932 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00933 #else
00934 throw()
00935 #endif
00936 { return _vvsminusassign(rv,sl); }
00937 INLINE civector_slice &civector_slice::operator -=(const civector &rv)
00938 #if(CXSC_INDEX_CHECK)
00939 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00940 #else
00941 throw()
00942 #endif
00943 { return _vsvminusassign(*this,rv); }
00944 INLINE civector_slice &civector_slice::operator -=(const civector_slice &sl2)
00945 #if(CXSC_INDEX_CHECK)
00946 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00947 #else
00948 throw()
00949 #endif
00950 { return _vsvsminusassign(*this,sl2); }
00951
00952 INLINE civector operator |(const civector &rv1, const civector &rv2)
00953 #if(CXSC_INDEX_CHECK)
00954 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00955 #else
00956 throw()
00957 #endif
00958 { return _vvconv<civector,civector,civector>(rv1,rv2); }
00959 INLINE civector operator |(const civector &rv, const civector_slice &sl)
00960 #if(CXSC_INDEX_CHECK)
00961 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00962 #else
00963 throw()
00964 #endif
00965 { return _vvsconv<civector,civector_slice,civector>(rv,sl); }
00966 INLINE civector operator |(const civector_slice &sl, const civector &rv)
00967 #if(CXSC_INDEX_CHECK)
00968 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00969 #else
00970 throw()
00971 #endif
00972 { return _vvsconv<civector,civector_slice,civector>(rv,sl); }
00973 INLINE civector operator |(const civector_slice &sl1, const civector_slice &sl2)
00974 #if(CXSC_INDEX_CHECK)
00975 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00976 #else
00977 throw()
00978 #endif
00979 { return _vsvsconv<civector_slice,civector_slice,civector>(sl1,sl2); }
00980 INLINE civector & operator |=(civector &rv1, const civector &rv2)
00981 #if(CXSC_INDEX_CHECK)
00982 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00983 #else
00984 throw()
00985 #endif
00986 { return _vvconvassign(rv1,rv2); }
00987 INLINE civector &operator |=(civector &rv, const civector_slice &sl)
00988 #if(CXSC_INDEX_CHECK)
00989 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00990 #else
00991 throw()
00992 #endif
00993 { return _vvsconvassign(rv,sl); }
00994 INLINE civector_slice &civector_slice::operator |=(const civector &rv)
00995 #if(CXSC_INDEX_CHECK)
00996 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
00997 #else
00998 throw()
00999 #endif
01000 { return _vsvconvassign(*this,rv); }
01001 INLINE civector_slice &civector_slice::operator |=(const civector_slice &sl2)
01002 #if(CXSC_INDEX_CHECK)
01003 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01004 #else
01005 throw()
01006 #endif
01007 { return _vsvsconvassign(*this,sl2); }
01008
01009 INLINE civector operator &(const civector &rv1, const civector &rv2)
01010 #if(CXSC_INDEX_CHECK)
01011 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01012 #else
01013 throw()
01014 #endif
01015 { return _vvsect<civector,civector,civector>(rv1,rv2); }
01016 INLINE civector operator &(const civector &rv, const civector_slice &sl)
01017 #if(CXSC_INDEX_CHECK)
01018 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01019 #else
01020 throw()
01021 #endif
01022 { return _vvssect<civector,civector_slice,civector>(rv,sl); }
01023 INLINE civector operator &(const civector_slice &sl, const civector &rv)
01024 #if(CXSC_INDEX_CHECK)
01025 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01026 #else
01027 throw()
01028 #endif
01029 { return _vvssect<civector,civector_slice,civector>(rv,sl); }
01030 INLINE civector operator &(const civector_slice &sl1, const civector_slice &sl2)
01031 #if(CXSC_INDEX_CHECK)
01032 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01033 #else
01034 throw()
01035 #endif
01036 { return _vsvssect<civector_slice,civector_slice,civector>(sl1,sl2); }
01037 INLINE civector & operator &=(civector &rv1, const civector &rv2)
01038 #if(CXSC_INDEX_CHECK)
01039 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01040 #else
01041 throw()
01042 #endif
01043 { return _vvsectassign(rv1,rv2); }
01044 INLINE civector &operator &=(civector &rv, const civector_slice &sl)
01045 #if(CXSC_INDEX_CHECK)
01046 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01047 #else
01048 throw()
01049 #endif
01050 { return _vvssectassign(rv,sl); }
01051 INLINE civector_slice &civector_slice::operator &=(const civector &rv)
01052 #if(CXSC_INDEX_CHECK)
01053 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01054 #else
01055 throw()
01056 #endif
01057 { return _vsvsectassign(*this,rv); }
01058 INLINE civector_slice &civector_slice::operator &=(const civector_slice &sl2)
01059 #if(CXSC_INDEX_CHECK)
01060 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01061 #else
01062 throw()
01063 #endif
01064 { return _vsvssectassign(*this,sl2); }
01065
01066 INLINE bool operator ==(const civector &rv1, const civector &rv2) throw() { return _vveq(rv1,rv2); }
01067 INLINE bool operator ==(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvseq(sl1,sl2); }
01068 INLINE bool operator ==(const civector_slice &sl, const civector &rv) throw() { return _vsveq(sl,rv); }
01069 INLINE bool operator ==(const civector &rv, const civector_slice &sl) throw() { return _vsveq(sl,rv); }
01070 INLINE bool operator !=(const civector &rv1, const civector &rv2) throw() { return _vvneq(rv1,rv2); }
01071 INLINE bool operator !=(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvsneq(sl1,sl2); }
01072 INLINE bool operator !=(const civector_slice &sl, const civector &rv) throw() { return _vsvneq(sl,rv); }
01073 INLINE bool operator !=(const civector &rv, const civector_slice &sl) throw() { return _vsvneq(sl,rv); }
01074 INLINE bool operator <(const civector &rv1, const civector &rv2) throw() { return _vvless(rv1,rv2); }
01075 INLINE bool operator <(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvsless(sl1,sl2); }
01076 INLINE bool operator < (const civector_slice &sl, const civector &rv) throw() { return _vsvless(sl,rv); }
01077 INLINE bool operator < (const civector &rv, const civector_slice &sl) throw() { return _vvsless(rv,sl); }
01078 INLINE bool operator <=(const civector &rv1, const civector &rv2) throw() { return _vvleq(rv1,rv2); }
01079 INLINE bool operator <=(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvsleq(sl1,sl2); }
01080 INLINE bool operator <=(const civector_slice &sl, const civector &rv) throw() { return _vsvleq(sl,rv); }
01081 INLINE bool operator <=(const civector &rv, const civector_slice &sl) throw() { return _vvsleq(rv,sl); }
01082 INLINE bool operator >(const civector &rv1, const civector &rv2) throw() { return _vvless(rv2,rv1); }
01083 INLINE bool operator >(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvsless(sl2,sl1); }
01084 INLINE bool operator >(const civector_slice &sl, const civector &rv) throw() { return _vvsless(rv,sl); }
01085 INLINE bool operator >(const civector &rv, const civector_slice &sl) throw() { return _vsvless(sl,rv); }
01086 INLINE bool operator >=(const civector &rv1, const civector &rv2) throw() { return _vvleq(rv2,rv1); }
01087 INLINE bool operator >=(const civector_slice &sl1, const civector_slice &sl2) throw() { return _vsvsleq(sl2,sl1); }
01088 INLINE bool operator >=(const civector_slice &sl, const civector &rv) throw() { return _vvsleq(rv,sl); }
01089 INLINE bool operator >=(const civector &rv, const civector_slice &sl) throw() { return _vsvleq(sl,rv); }
01090
01091
01092
01093 INLINE civector &civector::operator =(const rvector &rv) throw() { return _vvassign<civector,rvector,cinterval>(*this,rv); }
01094 INLINE civector &civector::operator =(const real &r) throw() { return _vsassign<civector,real>(*this,r); }
01095 INLINE civector & civector::operator =(const rvector_slice &sl) throw() { return _vvsassign<civector,rvector_slice,cinterval>(*this,sl); }
01096 INLINE civector_slice &civector_slice::operator =(const rvector &rv)
01097 #if(CXSC_INDEX_CHECK)
01098 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01099 #else
01100 throw()
01101 #endif
01102 { return _vsvassign(*this,rv); }
01103 INLINE civector_slice &civector_slice::operator =(const real &r) throw() { return _vssassign<civector_slice,real>(*this,r); }
01104 INLINE civector_slice & civector_slice::operator =(const rvector_slice &sl)
01105 #if(CXSC_INDEX_CHECK)
01106 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01107 #else
01108 throw()
01109 #endif
01110 { return _vsvsassign(*this,sl); }
01111
01112
01113 INLINE cinterval operator *(const rvector & rv1, const civector &rv2)
01114 #if(CXSC_INDEX_CHECK)
01115 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01116 #else
01117 throw()
01118 #endif
01119 { return _vvcimult<rvector,civector,cinterval>(rv1,rv2); }
01120 INLINE cinterval operator *(const rvector_slice &sl, const civector &rv)
01121 #if(CXSC_INDEX_CHECK)
01122 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01123 #else
01124 throw()
01125 #endif
01126 { return _vsvcimult<rvector_slice,civector,cinterval>(sl,rv); }
01127 INLINE cinterval operator *(const rvector &rv, const civector_slice &sl)
01128 #if(CXSC_INDEX_CHECK)
01129 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01130 #else
01131 throw()
01132 #endif
01133 { return _vsvcimult<civector_slice,rvector,cinterval>(sl,rv); }
01134 INLINE cinterval operator *(const rvector_slice & sl1, const civector_slice &sl2)
01135 #if(CXSC_INDEX_CHECK)
01136 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01137 #else
01138 throw()
01139 #endif
01140 { return _vsvscimult<rvector_slice,civector_slice,cinterval>(sl1,sl2); }
01141
01142 INLINE cinterval operator *(const civector & rv1, const rvector &rv2)
01143 #if(CXSC_INDEX_CHECK)
01144 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01145 #else
01146 throw()
01147 #endif
01148 { return _vvcimult<rvector,civector,cinterval>(rv2,rv1); }
01149 INLINE cinterval operator *(const civector_slice &sl, const rvector &rv)
01150 #if(CXSC_INDEX_CHECK)
01151 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01152 #else
01153 throw()
01154 #endif
01155 { return _vsvcimult<civector_slice,rvector,cinterval>(sl,rv); }
01156 INLINE cinterval operator *(const civector &rv, const rvector_slice &sl)
01157 #if(CXSC_INDEX_CHECK)
01158 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01159 #else
01160 throw()
01161 #endif
01162 { return _vsvcimult<rvector_slice,civector,cinterval>(sl,rv); }
01163 INLINE cinterval operator *(const civector_slice & sl1, const rvector_slice &sl2)
01164 #if(CXSC_INDEX_CHECK)
01165 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01166 #else
01167 throw()
01168 #endif
01169 { return _vsvscimult<rvector_slice,civector_slice,cinterval>(sl2,sl1); }
01170
01171 INLINE civector operator +(const rvector &rv1, const civector &rv2)
01172 #if(CXSC_INDEX_CHECK)
01173 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01174 #else
01175 throw()
01176 #endif
01177 { return _vvplus<rvector,civector,civector>(rv1,rv2); }
01178 INLINE civector operator +(const rvector &rv, const civector_slice &sl)
01179 #if(CXSC_INDEX_CHECK)
01180 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01181 #else
01182 throw()
01183 #endif
01184 { return _vvsplus<rvector,civector_slice,civector>(rv,sl); }
01185 INLINE civector operator +(const rvector_slice &sl, const civector &rv)
01186 #if(CXSC_INDEX_CHECK)
01187 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01188 #else
01189 throw()
01190 #endif
01191 { return _vvsplus<civector,rvector_slice,civector>(rv,sl); }
01192 INLINE civector operator +(const rvector_slice &sl1, const civector_slice &sl2)
01193 #if(CXSC_INDEX_CHECK)
01194 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01195 #else
01196 throw()
01197 #endif
01198 { return _vsvsplus<rvector_slice,civector_slice,civector>(sl1,sl2); }
01199
01200 INLINE civector operator +(const civector &rv1, const rvector &rv2)
01201 #if(CXSC_INDEX_CHECK)
01202 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01203 #else
01204 throw()
01205 #endif
01206 { return _vvplus<rvector,civector,civector>(rv2,rv1); }
01207 INLINE civector operator +(const civector &rv, const rvector_slice &sl)
01208 #if(CXSC_INDEX_CHECK)
01209 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01210 #else
01211 throw()
01212 #endif
01213 { return _vvsplus<civector,rvector_slice,civector>(rv,sl); }
01214 INLINE civector operator +(const civector_slice &sl, const rvector &rv)
01215 #if(CXSC_INDEX_CHECK)
01216 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01217 #else
01218 throw()
01219 #endif
01220 { return _vvsplus<rvector,civector_slice,civector>(rv,sl); }
01221 INLINE civector operator +(const civector_slice &sl1, const rvector_slice &sl2)
01222 #if(CXSC_INDEX_CHECK)
01223 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01224 #else
01225 throw()
01226 #endif
01227 { return _vsvsplus<rvector_slice,civector_slice,civector>(sl2,sl1); }
01228
01229 INLINE civector & operator +=(civector &rv1, const rvector &rv2)
01230 #if(CXSC_INDEX_CHECK)
01231 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01232 #else
01233 throw()
01234 #endif
01235 { return _vvplusassign(rv1,rv2); }
01236 INLINE civector &operator +=(civector &rv, const rvector_slice &sl)
01237 #if(CXSC_INDEX_CHECK)
01238 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01239 #else
01240 throw()
01241 #endif
01242 { return _vvsplusassign(rv,sl); }
01243 INLINE civector_slice &civector_slice::operator +=(const rvector &rv)
01244 #if(CXSC_INDEX_CHECK)
01245 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01246 #else
01247 throw()
01248 #endif
01249 { return _vsvplusassign(*this,rv); }
01250 INLINE civector_slice &civector_slice::operator +=(const rvector_slice &sl2)
01251 #if(CXSC_INDEX_CHECK)
01252 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01253 #else
01254 throw()
01255 #endif
01256 { return _vsvsplusassign(*this,sl2); }
01257
01258 INLINE civector operator -(const rvector &rv1, const civector &rv2)
01259 #if(CXSC_INDEX_CHECK)
01260 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01261 #else
01262 throw()
01263 #endif
01264 { return _vvminus<rvector,civector,civector>(rv1,rv2); }
01265 INLINE civector operator -(const rvector &rv, const civector_slice &sl)
01266 #if(CXSC_INDEX_CHECK)
01267 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01268 #else
01269 throw()
01270 #endif
01271 { return _vvsminus<rvector,civector_slice,civector>(rv,sl); }
01272 INLINE civector operator -(const rvector_slice &sl, const civector &rv)
01273 #if(CXSC_INDEX_CHECK)
01274 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01275 #else
01276 throw()
01277 #endif
01278 { return _vsvminus<rvector_slice,civector,civector>(sl,rv); }
01279 INLINE civector operator -(const rvector_slice &sl1, const civector_slice &sl2)
01280 #if(CXSC_INDEX_CHECK)
01281 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01282 #else
01283 throw()
01284 #endif
01285 { return _vsvsminus<rvector_slice,civector_slice,civector>(sl1,sl2); }
01286
01287 INLINE civector operator -(const civector &rv1, const rvector &rv2)
01288 #if(CXSC_INDEX_CHECK)
01289 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01290 #else
01291 throw()
01292 #endif
01293 { return _vvminus<civector,rvector,civector>(rv1,rv2); }
01294 INLINE civector operator -(const civector &rv, const rvector_slice &sl)
01295 #if(CXSC_INDEX_CHECK)
01296 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01297 #else
01298 throw()
01299 #endif
01300 { return _vvsminus<civector,rvector_slice,civector>(rv,sl); }
01301 INLINE civector operator -(const civector_slice &sl, const rvector &rv)
01302 #if(CXSC_INDEX_CHECK)
01303 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01304 #else
01305 throw()
01306 #endif
01307 { return _vsvminus<civector_slice,rvector,civector>(sl,rv); }
01308 INLINE civector operator -(const civector_slice &sl1, const rvector_slice &sl2)
01309 #if(CXSC_INDEX_CHECK)
01310 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01311 #else
01312 throw()
01313 #endif
01314 { return _vsvsminus<civector_slice,rvector_slice,civector>(sl1,sl2); }
01315
01316 INLINE civector & operator -=(civector &rv1, const rvector &rv2)
01317 #if(CXSC_INDEX_CHECK)
01318 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01319 #else
01320 throw()
01321 #endif
01322 { return _vvminusassign(rv1,rv2); }
01323 INLINE civector &operator -=(civector &rv, const rvector_slice &sl)
01324 #if(CXSC_INDEX_CHECK)
01325 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01326 #else
01327 throw()
01328 #endif
01329 { return _vvsminusassign(rv,sl); }
01330 INLINE civector_slice &civector_slice::operator -=(const rvector &rv)
01331 #if(CXSC_INDEX_CHECK)
01332 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01333 #else
01334 throw()
01335 #endif
01336 { return _vsvminusassign(*this,rv); }
01337 INLINE civector_slice &civector_slice::operator -=(const rvector_slice &sl2)
01338 #if(CXSC_INDEX_CHECK)
01339 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01340 #else
01341 throw()
01342 #endif
01343 { return _vsvsminusassign(*this,sl2); }
01344
01345 INLINE civector operator |(const rvector &rv1, const civector &rv2)
01346 #if(CXSC_INDEX_CHECK)
01347 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01348 #else
01349 throw()
01350 #endif
01351 { return _vvconv<rvector,civector,civector>(rv1,rv2); }
01352 INLINE civector operator |(const rvector &rv, const civector_slice &sl)
01353 #if(CXSC_INDEX_CHECK)
01354 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01355 #else
01356 throw()
01357 #endif
01358 { return _vvsconv<rvector,civector_slice,civector>(rv,sl); }
01359 INLINE civector operator |(const rvector_slice &sl, const civector &rv)
01360 #if(CXSC_INDEX_CHECK)
01361 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01362 #else
01363 throw()
01364 #endif
01365 { return _vvsconv<civector,rvector_slice,civector>(rv,sl); }
01366 INLINE civector operator |(const rvector_slice &sl1, const civector_slice &sl2)
01367 #if(CXSC_INDEX_CHECK)
01368 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01369 #else
01370 throw()
01371 #endif
01372 { return _vsvsconv<rvector_slice,civector_slice,civector>(sl1,sl2); }
01373
01374 INLINE civector operator |(const civector &rv1, const rvector &rv2)
01375 #if(CXSC_INDEX_CHECK)
01376 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01377 #else
01378 throw()
01379 #endif
01380 { return _vvconv<rvector,civector,civector>(rv2,rv1); }
01381 INLINE civector operator |(const civector &rv, const rvector_slice &sl)
01382 #if(CXSC_INDEX_CHECK)
01383 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01384 #else
01385 throw()
01386 #endif
01387 { return _vvsconv<civector,rvector_slice,civector>(rv,sl); }
01388 INLINE civector operator |(const civector_slice &sl, const rvector &rv)
01389 #if(CXSC_INDEX_CHECK)
01390 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01391 #else
01392 throw()
01393 #endif
01394 { return _vvsconv<rvector,civector_slice,civector>(rv,sl); }
01395 INLINE civector operator |(const civector_slice &sl1, const rvector_slice &sl2)
01396 #if(CXSC_INDEX_CHECK)
01397 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01398 #else
01399 throw()
01400 #endif
01401 { return _vsvsconv<rvector_slice,civector_slice,civector>(sl2,sl1); }
01402
01403 INLINE civector & operator |=(civector &rv1, const rvector &rv2)
01404 #if(CXSC_INDEX_CHECK)
01405 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01406 #else
01407 throw()
01408 #endif
01409 { return _vvconvassign(rv1,rv2); }
01410 INLINE civector &operator |=(civector &rv, const rvector_slice &sl)
01411 #if(CXSC_INDEX_CHECK)
01412 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01413 #else
01414 throw()
01415 #endif
01416 { return _vvsconvassign(rv,sl); }
01417 INLINE civector_slice &civector_slice::operator |=(const rvector &rv)
01418 #if(CXSC_INDEX_CHECK)
01419 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01420 #else
01421 throw()
01422 #endif
01423 { return _vsvconvassign(*this,rv); }
01424 INLINE civector_slice &civector_slice::operator |=(const rvector_slice &sl2)
01425 #if(CXSC_INDEX_CHECK)
01426 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01427 #else
01428 throw()
01429 #endif
01430 { return _vsvsconvassign(*this,sl2); }
01431
01432 INLINE civector operator &(const rvector &rv1, const civector &rv2)
01433 #if(CXSC_INDEX_CHECK)
01434 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01435 #else
01436 throw()
01437 #endif
01438 { return _vvsect<rvector,civector,civector>(rv1,rv2); }
01439 INLINE civector operator &(const rvector &rv, const civector_slice &sl)
01440 #if(CXSC_INDEX_CHECK)
01441 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01442 #else
01443 throw()
01444 #endif
01445 { return _vvssect<rvector,civector_slice,civector>(rv,sl); }
01446 INLINE civector operator &(const rvector_slice &sl, const civector &rv)
01447 #if(CXSC_INDEX_CHECK)
01448 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01449 #else
01450 throw()
01451 #endif
01452 { return _vvssect<civector,rvector_slice,civector>(rv,sl); }
01453 INLINE civector operator &(const rvector_slice &sl1, const civector_slice &sl2)
01454 #if(CXSC_INDEX_CHECK)
01455 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01456 #else
01457 throw()
01458 #endif
01459 { return _vsvssect<rvector_slice,civector_slice,civector>(sl1,sl2); }
01460
01461 INLINE civector operator &(const civector &rv1, const rvector &rv2)
01462 #if(CXSC_INDEX_CHECK)
01463 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01464 #else
01465 throw()
01466 #endif
01467 { return _vvsect<rvector,civector,civector>(rv2,rv1); }
01468 INLINE civector operator &(const civector &rv, const rvector_slice &sl)
01469 #if(CXSC_INDEX_CHECK)
01470 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01471 #else
01472 throw()
01473 #endif
01474 { return _vvssect<civector,rvector_slice,civector>(rv,sl); }
01475 INLINE civector operator &(const civector_slice &sl, const rvector &rv)
01476 #if(CXSC_INDEX_CHECK)
01477 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01478 #else
01479 throw()
01480 #endif
01481 { return _vvssect<rvector,civector_slice,civector>(rv,sl); }
01482 INLINE civector operator &(const civector_slice &sl1, const rvector_slice &sl2)
01483 #if(CXSC_INDEX_CHECK)
01484 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01485 #else
01486 throw()
01487 #endif
01488 { return _vsvssect<rvector_slice,civector_slice,civector>(sl2,sl1); }
01489
01490 INLINE civector & operator &=(civector &rv1, const rvector &rv2)
01491 #if(CXSC_INDEX_CHECK)
01492 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01493 #else
01494 throw()
01495 #endif
01496 { return _vvsectassign(rv1,rv2); }
01497 INLINE civector &operator &=(civector &rv, const rvector_slice &sl)
01498 #if(CXSC_INDEX_CHECK)
01499 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01500 #else
01501 throw()
01502 #endif
01503 { return _vvssectassign(rv,sl); }
01504 INLINE civector_slice &civector_slice::operator &=(const rvector &rv)
01505 #if(CXSC_INDEX_CHECK)
01506 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01507 #else
01508 throw()
01509 #endif
01510 { return _vsvsectassign(*this,rv); }
01511 INLINE civector_slice &civector_slice::operator &=(const rvector_slice &sl2)
01512 #if(CXSC_INDEX_CHECK)
01513 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01514 #else
01515 throw()
01516 #endif
01517 { return _vsvssectassign(*this,sl2); }
01518
01519
01520
01521 INLINE civector &civector::operator =(const cvector &rv) throw() { return _vvassign<civector,cvector,cinterval>(*this,rv); }
01522 INLINE civector &civector::operator =(const complex &r) throw() { return _vsassign<civector,complex>(*this,r); }
01523 INLINE civector & civector::operator =(const cvector_slice &sl) throw() { return _vvsassign<civector,cvector_slice,cinterval>(*this,sl); }
01524 INLINE civector_slice &civector_slice::operator =(const cvector &rv)
01525 #if(CXSC_INDEX_CHECK)
01526 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01527 #else
01528 throw()
01529 #endif
01530 { return _vsvassign(*this,rv); }
01531 INLINE civector_slice &civector_slice::operator =(const complex &r) throw() { return _vssassign<civector_slice,complex>(*this,r); }
01532 INLINE civector_slice & civector_slice::operator =(const cvector_slice &sl)
01533 #if(CXSC_INDEX_CHECK)
01534 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01535 #else
01536 throw()
01537 #endif
01538 { return _vsvsassign(*this,sl); }
01539
01540
01541 INLINE cinterval operator *(const cvector & rv1, const civector &rv2)
01542 #if(CXSC_INDEX_CHECK)
01543 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01544 #else
01545 throw()
01546 #endif
01547 { return _vvcimult<cvector,civector,cinterval>(rv1,rv2); }
01548 INLINE cinterval operator *(const cvector_slice &sl, const civector &rv)
01549 #if(CXSC_INDEX_CHECK)
01550 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01551 #else
01552 throw()
01553 #endif
01554 { return _vsvcimult<cvector_slice,civector,cinterval>(sl,rv); }
01555 INLINE cinterval operator *(const cvector &rv, const civector_slice &sl)
01556 #if(CXSC_INDEX_CHECK)
01557 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01558 #else
01559 throw()
01560 #endif
01561 { return _vsvcimult<civector_slice,cvector,cinterval>(sl,rv); }
01562 INLINE cinterval operator *(const cvector_slice & sl1, const civector_slice &sl2)
01563 #if(CXSC_INDEX_CHECK)
01564 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01565 #else
01566 throw()
01567 #endif
01568 { return _vsvscimult<cvector_slice,civector_slice,cinterval>(sl1,sl2); }
01569
01570 INLINE cinterval operator *(const civector & rv1, const cvector &rv2)
01571 #if(CXSC_INDEX_CHECK)
01572 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01573 #else
01574 throw()
01575 #endif
01576 { return _vvcimult<cvector,civector,cinterval>(rv2,rv1); }
01577 INLINE cinterval operator *(const civector_slice &sl, const cvector &rv)
01578 #if(CXSC_INDEX_CHECK)
01579 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01580 #else
01581 throw()
01582 #endif
01583 { return _vsvcimult<civector_slice,cvector,cinterval>(sl,rv); }
01584 INLINE cinterval operator *(const civector &rv, const cvector_slice &sl)
01585 #if(CXSC_INDEX_CHECK)
01586 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01587 #else
01588 throw()
01589 #endif
01590 { return _vsvcimult<cvector_slice,civector,cinterval>(sl,rv); }
01591 INLINE cinterval operator *(const civector_slice & sl1, const cvector_slice &sl2)
01592 #if(CXSC_INDEX_CHECK)
01593 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01594 #else
01595 throw()
01596 #endif
01597 { return _vsvscimult<cvector_slice,civector_slice,cinterval>(sl2,sl1); }
01598
01599 INLINE civector operator +(const cvector &rv1, const civector &rv2)
01600 #if(CXSC_INDEX_CHECK)
01601 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01602 #else
01603 throw()
01604 #endif
01605 { return _vvplus<cvector,civector,civector>(rv1,rv2); }
01606 INLINE civector operator +(const cvector &rv, const civector_slice &sl)
01607 #if(CXSC_INDEX_CHECK)
01608 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01609 #else
01610 throw()
01611 #endif
01612 { return _vvsplus<cvector,civector_slice,civector>(rv,sl); }
01613 INLINE civector operator +(const cvector_slice &sl, const civector &rv)
01614 #if(CXSC_INDEX_CHECK)
01615 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01616 #else
01617 throw()
01618 #endif
01619 { return _vvsplus<civector,cvector_slice,civector>(rv,sl); }
01620 INLINE civector operator +(const cvector_slice &sl1, const civector_slice &sl2)
01621 #if(CXSC_INDEX_CHECK)
01622 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01623 #else
01624 throw()
01625 #endif
01626 { return _vsvsplus<cvector_slice,civector_slice,civector>(sl1,sl2); }
01627
01628 INLINE civector operator +(const civector &rv1, const cvector &rv2)
01629 #if(CXSC_INDEX_CHECK)
01630 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01631 #else
01632 throw()
01633 #endif
01634 { return _vvplus<cvector,civector,civector>(rv2,rv1); }
01635 INLINE civector operator +(const civector &rv, const cvector_slice &sl)
01636 #if(CXSC_INDEX_CHECK)
01637 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01638 #else
01639 throw()
01640 #endif
01641 { return _vvsplus<civector,cvector_slice,civector>(rv,sl); }
01642 INLINE civector operator +(const civector_slice &sl, const cvector &rv)
01643 #if(CXSC_INDEX_CHECK)
01644 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01645 #else
01646 throw()
01647 #endif
01648 { return _vvsplus<cvector,civector_slice,civector>(rv,sl); }
01649 INLINE civector operator +(const civector_slice &sl1, const cvector_slice &sl2)
01650 #if(CXSC_INDEX_CHECK)
01651 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01652 #else
01653 throw()
01654 #endif
01655 { return _vsvsplus<cvector_slice,civector_slice,civector>(sl2,sl1); }
01656
01657 INLINE civector & operator +=(civector &rv1, const cvector &rv2)
01658 #if(CXSC_INDEX_CHECK)
01659 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01660 #else
01661 throw()
01662 #endif
01663 { return _vvplusassign(rv1,rv2); }
01664 INLINE civector &operator +=(civector &rv, const cvector_slice &sl)
01665 #if(CXSC_INDEX_CHECK)
01666 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01667 #else
01668 throw()
01669 #endif
01670 { return _vvsplusassign(rv,sl); }
01671 INLINE civector_slice &civector_slice::operator +=(const cvector &rv)
01672 #if(CXSC_INDEX_CHECK)
01673 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01674 #else
01675 throw()
01676 #endif
01677 { return _vsvplusassign(*this,rv); }
01678 INLINE civector_slice &civector_slice::operator +=(const cvector_slice &sl2)
01679 #if(CXSC_INDEX_CHECK)
01680 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01681 #else
01682 throw()
01683 #endif
01684 { return _vsvsplusassign(*this,sl2); }
01685
01686 INLINE civector operator -(const cvector &rv1, const civector &rv2)
01687 #if(CXSC_INDEX_CHECK)
01688 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01689 #else
01690 throw()
01691 #endif
01692 { return _vvminus<cvector,civector,civector>(rv1,rv2); }
01693 INLINE civector operator -(const cvector &rv, const civector_slice &sl)
01694 #if(CXSC_INDEX_CHECK)
01695 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01696 #else
01697 throw()
01698 #endif
01699 { return _vvsminus<cvector,civector_slice,civector>(rv,sl); }
01700 INLINE civector operator -(const cvector_slice &sl, const civector &rv)
01701 #if(CXSC_INDEX_CHECK)
01702 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01703 #else
01704 throw()
01705 #endif
01706 { return _vsvminus<cvector_slice,civector,civector>(sl,rv); }
01707 INLINE civector operator -(const cvector_slice &sl1, const civector_slice &sl2)
01708 #if(CXSC_INDEX_CHECK)
01709 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01710 #else
01711 throw()
01712 #endif
01713 { return _vsvsminus<cvector_slice,civector_slice,civector>(sl1,sl2); }
01714
01715 INLINE civector operator -(const civector &rv1, const cvector &rv2)
01716 #if(CXSC_INDEX_CHECK)
01717 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01718 #else
01719 throw()
01720 #endif
01721 { return _vvminus<civector,cvector,civector>(rv1,rv2); }
01722 INLINE civector operator -(const civector &rv, const cvector_slice &sl)
01723 #if(CXSC_INDEX_CHECK)
01724 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01725 #else
01726 throw()
01727 #endif
01728 { return _vvsminus<civector,cvector_slice,civector>(rv,sl); }
01729 INLINE civector operator -(const civector_slice &sl, const cvector &rv)
01730 #if(CXSC_INDEX_CHECK)
01731 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01732 #else
01733 throw()
01734 #endif
01735 { return _vsvminus<civector_slice,cvector,civector>(sl,rv); }
01736 INLINE civector operator -(const civector_slice &sl1, const cvector_slice &sl2)
01737 #if(CXSC_INDEX_CHECK)
01738 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01739 #else
01740 throw()
01741 #endif
01742 { return _vsvsminus<civector_slice,cvector_slice,civector>(sl1,sl2); }
01743
01744 INLINE civector & operator -=(civector &rv1, const cvector &rv2)
01745 #if(CXSC_INDEX_CHECK)
01746 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01747 #else
01748 throw()
01749 #endif
01750 { return _vvminusassign(rv1,rv2); }
01751 INLINE civector &operator -=(civector &rv, const cvector_slice &sl)
01752 #if(CXSC_INDEX_CHECK)
01753 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01754 #else
01755 throw()
01756 #endif
01757 { return _vvsminusassign(rv,sl); }
01758 INLINE civector_slice &civector_slice::operator -=(const cvector &rv)
01759 #if(CXSC_INDEX_CHECK)
01760 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01761 #else
01762 throw()
01763 #endif
01764 { return _vsvminusassign(*this,rv); }
01765 INLINE civector_slice &civector_slice::operator -=(const cvector_slice &sl2)
01766 #if(CXSC_INDEX_CHECK)
01767 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01768 #else
01769 throw()
01770 #endif
01771 { return _vsvsminusassign(*this,sl2); }
01772
01773 INLINE civector operator |(const cvector &rv1, const civector &rv2)
01774 #if(CXSC_INDEX_CHECK)
01775 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01776 #else
01777 throw()
01778 #endif
01779 { return _vvconv<cvector,civector,civector>(rv1,rv2); }
01780 INLINE civector operator |(const cvector &rv, const civector_slice &sl)
01781 #if(CXSC_INDEX_CHECK)
01782 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01783 #else
01784 throw()
01785 #endif
01786 { return _vvsconv<cvector,civector_slice,civector>(rv,sl); }
01787 INLINE civector operator |(const cvector_slice &sl, const civector &rv)
01788 #if(CXSC_INDEX_CHECK)
01789 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01790 #else
01791 throw()
01792 #endif
01793 { return _vvsconv<civector,cvector_slice,civector>(rv,sl); }
01794 INLINE civector operator |(const cvector_slice &sl1, const civector_slice &sl2)
01795 #if(CXSC_INDEX_CHECK)
01796 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01797 #else
01798 throw()
01799 #endif
01800 { return _vsvsconv<cvector_slice,civector_slice,civector>(sl1,sl2); }
01801
01802 INLINE civector operator |(const civector &rv1, const cvector &rv2)
01803 #if(CXSC_INDEX_CHECK)
01804 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01805 #else
01806 throw()
01807 #endif
01808 { return _vvconv<cvector,civector,civector>(rv2,rv1); }
01809 INLINE civector operator |(const civector &rv, const cvector_slice &sl)
01810 #if(CXSC_INDEX_CHECK)
01811 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01812 #else
01813 throw()
01814 #endif
01815 { return _vvsconv<civector,cvector_slice,civector>(rv,sl); }
01816 INLINE civector operator |(const civector_slice &sl, const cvector &rv)
01817 #if(CXSC_INDEX_CHECK)
01818 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01819 #else
01820 throw()
01821 #endif
01822 { return _vvsconv<cvector,civector_slice,civector>(rv,sl); }
01823 INLINE civector operator |(const civector_slice &sl1, const cvector_slice &sl2)
01824 #if(CXSC_INDEX_CHECK)
01825 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01826 #else
01827 throw()
01828 #endif
01829 { return _vsvsconv<cvector_slice,civector_slice,civector>(sl2,sl1); }
01830
01831 INLINE civector & operator |=(civector &rv1, const cvector &rv2)
01832 #if(CXSC_INDEX_CHECK)
01833 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01834 #else
01835 throw()
01836 #endif
01837 { return _vvconvassign(rv1,rv2); }
01838 INLINE civector &operator |=(civector &rv, const cvector_slice &sl)
01839 #if(CXSC_INDEX_CHECK)
01840 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01841 #else
01842 throw()
01843 #endif
01844 { return _vvsconvassign(rv,sl); }
01845 INLINE civector_slice &civector_slice::operator |=(const cvector &rv)
01846 #if(CXSC_INDEX_CHECK)
01847 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01848 #else
01849 throw()
01850 #endif
01851 { return _vsvconvassign(*this,rv); }
01852 INLINE civector_slice &civector_slice::operator |=(const cvector_slice &sl2)
01853 #if(CXSC_INDEX_CHECK)
01854 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01855 #else
01856 throw()
01857 #endif
01858 { return _vsvsconvassign(*this,sl2); }
01859
01860 INLINE civector operator &(const cvector &rv1, const civector &rv2)
01861 #if(CXSC_INDEX_CHECK)
01862 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01863 #else
01864 throw()
01865 #endif
01866 { return _vvsect<cvector,civector,civector>(rv1,rv2); }
01867 INLINE civector operator &(const cvector &rv, const civector_slice &sl)
01868 #if(CXSC_INDEX_CHECK)
01869 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01870 #else
01871 throw()
01872 #endif
01873 { return _vvssect<cvector,civector_slice,civector>(rv,sl); }
01874 INLINE civector operator &(const cvector_slice &sl, const civector &rv)
01875 #if(CXSC_INDEX_CHECK)
01876 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01877 #else
01878 throw()
01879 #endif
01880 { return _vvssect<civector,cvector_slice,civector>(rv,sl); }
01881 INLINE civector operator &(const cvector_slice &sl1, const civector_slice &sl2)
01882 #if(CXSC_INDEX_CHECK)
01883 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01884 #else
01885 throw()
01886 #endif
01887 { return _vsvssect<cvector_slice,civector_slice,civector>(sl1,sl2); }
01888
01889 INLINE civector operator &(const civector &rv1, const cvector &rv2)
01890 #if(CXSC_INDEX_CHECK)
01891 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01892 #else
01893 throw()
01894 #endif
01895 { return _vvsect<cvector,civector,civector>(rv2,rv1); }
01896 INLINE civector operator &(const civector &rv, const cvector_slice &sl)
01897 #if(CXSC_INDEX_CHECK)
01898 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01899 #else
01900 throw()
01901 #endif
01902 { return _vvssect<civector,cvector_slice,civector>(rv,sl); }
01903 INLINE civector operator &(const civector_slice &sl, const cvector &rv)
01904 #if(CXSC_INDEX_CHECK)
01905 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01906 #else
01907 throw()
01908 #endif
01909 { return _vvssect<cvector,civector_slice,civector>(rv,sl); }
01910 INLINE civector operator &(const civector_slice &sl1, const cvector_slice &sl2)
01911 #if(CXSC_INDEX_CHECK)
01912 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01913 #else
01914 throw()
01915 #endif
01916 { return _vsvssect<cvector_slice,civector_slice,civector>(sl2,sl1); }
01917
01918 INLINE civector & operator &=(civector &rv1, const cvector &rv2)
01919 #if(CXSC_INDEX_CHECK)
01920 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01921 #else
01922 throw()
01923 #endif
01924 { return _vvsectassign(rv1,rv2); }
01925 INLINE civector &operator &=(civector &rv, const cvector_slice &sl)
01926 #if(CXSC_INDEX_CHECK)
01927 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01928 #else
01929 throw()
01930 #endif
01931 { return _vvssectassign(rv,sl); }
01932 INLINE civector_slice &civector_slice::operator &=(const cvector &rv)
01933 #if(CXSC_INDEX_CHECK)
01934 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01935 #else
01936 throw()
01937 #endif
01938 { return _vsvsectassign(*this,rv); }
01939 INLINE civector_slice &civector_slice::operator &=(const cvector_slice &sl2)
01940 #if(CXSC_INDEX_CHECK)
01941 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01942 #else
01943 throw()
01944 #endif
01945 { return _vsvssectassign(*this,sl2); }
01946
01947
01948
01949 INLINE civector &civector::operator =(const ivector &rv) throw() { return _vvassign<civector,ivector,cinterval>(*this,rv); }
01950 INLINE civector &civector::operator =(const interval &r) throw() { return _vsassign<civector,interval>(*this,r); }
01951 INLINE civector & civector::operator =(const ivector_slice &sl) throw() { return _vvsassign<civector,ivector_slice,cinterval>(*this,sl); }
01952 INLINE civector_slice &civector_slice::operator =(const ivector &rv)
01953 #if(CXSC_INDEX_CHECK)
01954 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01955 #else
01956 throw()
01957 #endif
01958 { return _vsvassign(*this,rv); }
01959 INLINE civector_slice &civector_slice::operator =(const interval &r) throw() { return _vssassign<civector_slice,interval>(*this,r); }
01960 INLINE civector_slice & civector_slice::operator =(const ivector_slice &sl)
01961 #if(CXSC_INDEX_CHECK)
01962 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01963 #else
01964 throw()
01965 #endif
01966 { return _vsvsassign(*this,sl); }
01967
01968
01969 INLINE cinterval operator *(const ivector & rv1, const civector &rv2)
01970 #if(CXSC_INDEX_CHECK)
01971 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01972 #else
01973 throw()
01974 #endif
01975 { return _vvcimult<ivector,civector,cinterval>(rv1,rv2); }
01976 INLINE cinterval operator *(const ivector_slice &sl, const civector &rv)
01977 #if(CXSC_INDEX_CHECK)
01978 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01979 #else
01980 throw()
01981 #endif
01982 { return _vsvcimult<ivector_slice,civector,cinterval>(sl,rv); }
01983 INLINE cinterval operator *(const ivector &rv, const civector_slice &sl)
01984 #if(CXSC_INDEX_CHECK)
01985 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01986 #else
01987 throw()
01988 #endif
01989 { return _vsvcimult<civector_slice,ivector,cinterval>(sl,rv); }
01990 INLINE cinterval operator *(const ivector_slice & sl1, const civector_slice &sl2)
01991 #if(CXSC_INDEX_CHECK)
01992 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
01993 #else
01994 throw()
01995 #endif
01996 { return _vsvscimult<ivector_slice,civector_slice,cinterval>(sl1,sl2); }
01997
01998 INLINE cinterval operator *(const civector & rv1, const ivector &rv2)
01999 #if(CXSC_INDEX_CHECK)
02000 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02001 #else
02002 throw()
02003 #endif
02004 { return _vvcimult<ivector,civector,cinterval>(rv2,rv1); }
02005 INLINE cinterval operator *(const civector_slice &sl, const ivector &rv)
02006 #if(CXSC_INDEX_CHECK)
02007 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02008 #else
02009 throw()
02010 #endif
02011 { return _vsvcimult<civector_slice,ivector,cinterval>(sl,rv); }
02012 INLINE cinterval operator *(const civector &rv, const ivector_slice &sl)
02013 #if(CXSC_INDEX_CHECK)
02014 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02015 #else
02016 throw()
02017 #endif
02018 { return _vsvcimult<ivector_slice,civector,cinterval>(sl,rv); }
02019 INLINE cinterval operator *(const civector_slice & sl1, const ivector_slice &sl2)
02020 #if(CXSC_INDEX_CHECK)
02021 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02022 #else
02023 throw()
02024 #endif
02025 { return _vsvscimult<ivector_slice,civector_slice,cinterval>(sl2,sl1); }
02026
02027 INLINE civector operator +(const ivector &rv1, const civector &rv2)
02028 #if(CXSC_INDEX_CHECK)
02029 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02030 #else
02031 throw()
02032 #endif
02033 { return _vvplus<ivector,civector,civector>(rv1,rv2); }
02034 INLINE civector operator +(const ivector &rv, const civector_slice &sl)
02035 #if(CXSC_INDEX_CHECK)
02036 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02037 #else
02038 throw()
02039 #endif
02040 { return _vvsplus<ivector,civector_slice,civector>(rv,sl); }
02041 INLINE civector operator +(const ivector_slice &sl, const civector &rv)
02042 #if(CXSC_INDEX_CHECK)
02043 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02044 #else
02045 throw()
02046 #endif
02047 { return _vvsplus<civector,ivector_slice,civector>(rv,sl); }
02048 INLINE civector operator +(const ivector_slice &sl1, const civector_slice &sl2)
02049 #if(CXSC_INDEX_CHECK)
02050 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02051 #else
02052 throw()
02053 #endif
02054 { return _vsvsplus<ivector_slice,civector_slice,civector>(sl1,sl2); }
02055
02056 INLINE civector operator +(const civector &rv1, const ivector &rv2)
02057 #if(CXSC_INDEX_CHECK)
02058 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02059 #else
02060 throw()
02061 #endif
02062 { return _vvplus<ivector,civector,civector>(rv2,rv1); }
02063 INLINE civector operator +(const civector &rv, const ivector_slice &sl)
02064 #if(CXSC_INDEX_CHECK)
02065 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02066 #else
02067 throw()
02068 #endif
02069 { return _vvsplus<civector,ivector_slice,civector>(rv,sl); }
02070 INLINE civector operator +(const civector_slice &sl, const ivector &rv)
02071 #if(CXSC_INDEX_CHECK)
02072 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02073 #else
02074 throw()
02075 #endif
02076 { return _vvsplus<ivector,civector_slice,civector>(rv,sl); }
02077 INLINE civector operator +(const civector_slice &sl1, const ivector_slice &sl2)
02078 #if(CXSC_INDEX_CHECK)
02079 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02080 #else
02081 throw()
02082 #endif
02083 { return _vsvsplus<ivector_slice,civector_slice,civector>(sl2,sl1); }
02084
02085 INLINE civector & operator +=(civector &rv1, const ivector &rv2)
02086 #if(CXSC_INDEX_CHECK)
02087 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02088 #else
02089 throw()
02090 #endif
02091 { return _vvplusassign(rv1,rv2); }
02092 INLINE civector &operator +=(civector &rv, const ivector_slice &sl)
02093 #if(CXSC_INDEX_CHECK)
02094 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02095 #else
02096 throw()
02097 #endif
02098 { return _vvsplusassign(rv,sl); }
02099 INLINE civector_slice &civector_slice::operator +=(const ivector &rv)
02100 #if(CXSC_INDEX_CHECK)
02101 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02102 #else
02103 throw()
02104 #endif
02105 { return _vsvplusassign(*this,rv); }
02106 INLINE civector_slice &civector_slice::operator +=(const ivector_slice &sl2)
02107 #if(CXSC_INDEX_CHECK)
02108 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02109 #else
02110 throw()
02111 #endif
02112 { return _vsvsplusassign(*this,sl2); }
02113
02114 INLINE civector operator -(const ivector &rv1, const civector &rv2)
02115 #if(CXSC_INDEX_CHECK)
02116 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02117 #else
02118 throw()
02119 #endif
02120 { return _vvminus<ivector,civector,civector>(rv1,rv2); }
02121 INLINE civector operator -(const ivector &rv, const civector_slice &sl)
02122 #if(CXSC_INDEX_CHECK)
02123 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02124 #else
02125 throw()
02126 #endif
02127 { return _vvsminus<ivector,civector_slice,civector>(rv,sl); }
02128 INLINE civector operator -(const ivector_slice &sl, const civector &rv)
02129 #if(CXSC_INDEX_CHECK)
02130 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02131 #else
02132 throw()
02133 #endif
02134 { return _vsvminus<ivector_slice,civector,civector>(sl,rv); }
02135 INLINE civector operator -(const ivector_slice &sl1, const civector_slice &sl2)
02136 #if(CXSC_INDEX_CHECK)
02137 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02138 #else
02139 throw()
02140 #endif
02141 { return _vsvsminus<ivector_slice,civector_slice,civector>(sl1,sl2); }
02142
02143 INLINE civector operator -(const civector &rv1, const ivector &rv2)
02144 #if(CXSC_INDEX_CHECK)
02145 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02146 #else
02147 throw()
02148 #endif
02149 { return _vvminus<civector,ivector,civector>(rv1,rv2); }
02150 INLINE civector operator -(const civector &rv, const ivector_slice &sl)
02151 #if(CXSC_INDEX_CHECK)
02152 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02153 #else
02154 throw()
02155 #endif
02156 { return _vvsminus<civector,ivector_slice,civector>(rv,sl); }
02157 INLINE civector operator -(const civector_slice &sl, const ivector &rv)
02158 #if(CXSC_INDEX_CHECK)
02159 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02160 #else
02161 throw()
02162 #endif
02163 { return _vsvminus<civector_slice,ivector,civector>(sl,rv); }
02164 INLINE civector operator -(const civector_slice &sl1, const ivector_slice &sl2)
02165 #if(CXSC_INDEX_CHECK)
02166 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02167 #else
02168 throw()
02169 #endif
02170 { return _vsvsminus<civector_slice,ivector_slice,civector>(sl1,sl2); }
02171
02172 INLINE civector & operator -=(civector &rv1, const ivector &rv2)
02173 #if(CXSC_INDEX_CHECK)
02174 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02175 #else
02176 throw()
02177 #endif
02178 { return _vvminusassign(rv1,rv2); }
02179 INLINE civector &operator -=(civector &rv, const ivector_slice &sl)
02180 #if(CXSC_INDEX_CHECK)
02181 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02182 #else
02183 throw()
02184 #endif
02185 { return _vvsminusassign(rv,sl); }
02186 INLINE civector_slice &civector_slice::operator -=(const ivector &rv)
02187 #if(CXSC_INDEX_CHECK)
02188 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02189 #else
02190 throw()
02191 #endif
02192 { return _vsvminusassign(*this,rv); }
02193 INLINE civector_slice &civector_slice::operator -=(const ivector_slice &sl2)
02194 #if(CXSC_INDEX_CHECK)
02195 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02196 #else
02197 throw()
02198 #endif
02199 { return _vsvsminusassign(*this,sl2); }
02200
02201 INLINE civector operator |(const ivector &rv1, const civector &rv2)
02202 #if(CXSC_INDEX_CHECK)
02203 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02204 #else
02205 throw()
02206 #endif
02207 { return _vvconv<ivector,civector,civector>(rv1,rv2); }
02208 INLINE civector operator |(const ivector &rv, const civector_slice &sl)
02209 #if(CXSC_INDEX_CHECK)
02210 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02211 #else
02212 throw()
02213 #endif
02214 { return _vvsconv<ivector,civector_slice,civector>(rv,sl); }
02215 INLINE civector operator |(const ivector_slice &sl, const civector &rv)
02216 #if(CXSC_INDEX_CHECK)
02217 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02218 #else
02219 throw()
02220 #endif
02221 { return _vvsconv<civector,ivector_slice,civector>(rv,sl); }
02222 INLINE civector operator |(const ivector_slice &sl1, const civector_slice &sl2)
02223 #if(CXSC_INDEX_CHECK)
02224 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02225 #else
02226 throw()
02227 #endif
02228 { return _vsvsconv<ivector_slice,civector_slice,civector>(sl1,sl2); }
02229
02230 INLINE civector operator |(const civector &rv1, const ivector &rv2)
02231 #if(CXSC_INDEX_CHECK)
02232 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02233 #else
02234 throw()
02235 #endif
02236 { return _vvconv<ivector,civector,civector>(rv2,rv1); }
02237 INLINE civector operator |(const civector &rv, const ivector_slice &sl)
02238 #if(CXSC_INDEX_CHECK)
02239 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02240 #else
02241 throw()
02242 #endif
02243 { return _vvsconv<civector,ivector_slice,civector>(rv,sl); }
02244 INLINE civector operator |(const civector_slice &sl, const ivector &rv)
02245 #if(CXSC_INDEX_CHECK)
02246 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02247 #else
02248 throw()
02249 #endif
02250 { return _vvsconv<ivector,civector_slice,civector>(rv,sl); }
02251 INLINE civector operator |(const civector_slice &sl1, const ivector_slice &sl2)
02252 #if(CXSC_INDEX_CHECK)
02253 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02254 #else
02255 throw()
02256 #endif
02257 { return _vsvsconv<ivector_slice,civector_slice,civector>(sl2,sl1); }
02258
02259 INLINE civector & operator |=(civector &rv1, const ivector &rv2)
02260 #if(CXSC_INDEX_CHECK)
02261 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02262 #else
02263 throw()
02264 #endif
02265 { return _vvconvassign(rv1,rv2); }
02266 INLINE civector &operator |=(civector &rv, const ivector_slice &sl)
02267 #if(CXSC_INDEX_CHECK)
02268 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02269 #else
02270 throw()
02271 #endif
02272 { return _vvsconvassign(rv,sl); }
02273 INLINE civector_slice &civector_slice::operator |=(const ivector &rv)
02274 #if(CXSC_INDEX_CHECK)
02275 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02276 #else
02277 throw()
02278 #endif
02279 { return _vsvconvassign(*this,rv); }
02280 INLINE civector_slice &civector_slice::operator |=(const ivector_slice &sl2)
02281 #if(CXSC_INDEX_CHECK)
02282 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02283 #else
02284 throw()
02285 #endif
02286 { return _vsvsconvassign(*this,sl2); }
02287
02288 INLINE civector operator &(const ivector &rv1, const civector &rv2)
02289 #if(CXSC_INDEX_CHECK)
02290 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02291 #else
02292 throw()
02293 #endif
02294 { return _vvsect<ivector,civector,civector>(rv1,rv2); }
02295 INLINE civector operator &(const ivector &rv, const civector_slice &sl)
02296 #if(CXSC_INDEX_CHECK)
02297 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02298 #else
02299 throw()
02300 #endif
02301 { return _vvssect<ivector,civector_slice,civector>(rv,sl); }
02302 INLINE civector operator &(const ivector_slice &sl, const civector &rv)
02303 #if(CXSC_INDEX_CHECK)
02304 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02305 #else
02306 throw()
02307 #endif
02308 { return _vvssect<civector,ivector_slice,civector>(rv,sl); }
02309 INLINE civector operator &(const ivector_slice &sl1, const civector_slice &sl2)
02310 #if(CXSC_INDEX_CHECK)
02311 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02312 #else
02313 throw()
02314 #endif
02315 { return _vsvssect<ivector_slice,civector_slice,civector>(sl1,sl2); }
02316
02317 INLINE civector operator &(const civector &rv1, const ivector &rv2)
02318 #if(CXSC_INDEX_CHECK)
02319 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02320 #else
02321 throw()
02322 #endif
02323 { return _vvsect<ivector,civector,civector>(rv2,rv1); }
02324 INLINE civector operator &(const civector &rv, const ivector_slice &sl)
02325 #if(CXSC_INDEX_CHECK)
02326 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02327 #else
02328 throw()
02329 #endif
02330 { return _vvssect<civector,ivector_slice,civector>(rv,sl); }
02331 INLINE civector operator &(const civector_slice &sl, const ivector &rv)
02332 #if(CXSC_INDEX_CHECK)
02333 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02334 #else
02335 throw()
02336 #endif
02337 { return _vvssect<ivector,civector_slice,civector>(rv,sl); }
02338 INLINE civector operator &(const civector_slice &sl1, const ivector_slice &sl2)
02339 #if(CXSC_INDEX_CHECK)
02340 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02341 #else
02342 throw()
02343 #endif
02344 { return _vsvssect<ivector_slice,civector_slice,civector>(sl2,sl1); }
02345
02346 INLINE civector & operator &=(civector &rv1, const ivector &rv2)
02347 #if(CXSC_INDEX_CHECK)
02348 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02349 #else
02350 throw()
02351 #endif
02352 { return _vvsectassign(rv1,rv2); }
02353 INLINE civector &operator &=(civector &rv, const ivector_slice &sl)
02354 #if(CXSC_INDEX_CHECK)
02355 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02356 #else
02357 throw()
02358 #endif
02359 { return _vvssectassign(rv,sl); }
02360 INLINE civector_slice &civector_slice::operator &=(const ivector &rv)
02361 #if(CXSC_INDEX_CHECK)
02362 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02363 #else
02364 throw()
02365 #endif
02366 { return _vsvsectassign(*this,rv); }
02367 INLINE civector_slice &civector_slice::operator &=(const ivector_slice &sl2)
02368 #if(CXSC_INDEX_CHECK)
02369 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02370 #else
02371 throw()
02372 #endif
02373 { return _vsvssectassign(*this,sl2); }
02374
02375
02376 INLINE civector operator |(const rvector &rv1, const cvector &rv2)
02377 #if(CXSC_INDEX_CHECK)
02378 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02379 #else
02380 throw()
02381 #endif
02382 { return _vvconv<rvector,cvector,civector>(rv1,rv2); }
02383 INLINE civector operator |(const cvector &rv1, const rvector &rv2)
02384 #if(CXSC_INDEX_CHECK)
02385 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02386 #else
02387 throw()
02388 #endif
02389 { return _vvconv<rvector,cvector,civector>(rv2,rv1); }
02390 INLINE civector operator |(const cvector &rv, const rvector_slice &sl)
02391 #if(CXSC_INDEX_CHECK)
02392 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02393 #else
02394 throw()
02395 #endif
02396 { return _vvsconv<cvector,rvector_slice,civector>(rv,sl); }
02397 INLINE civector operator |(const rvector_slice &sl,const cvector &rv)
02398 #if(CXSC_INDEX_CHECK)
02399 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02400 #else
02401 throw()
02402 #endif
02403 { return _vvsconv<cvector,rvector_slice,civector>(rv,sl); }
02404 INLINE civector operator |(const cvector_slice &sl, const rvector &rv)
02405 #if(CXSC_INDEX_CHECK)
02406 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02407 #else
02408 throw()
02409 #endif
02410 { return _vvsconv<rvector,cvector_slice,civector>(rv,sl); }
02411 INLINE civector operator |(const rvector &rv,const cvector_slice &sl)
02412 #if(CXSC_INDEX_CHECK)
02413 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02414 #else
02415 throw()
02416 #endif
02417 { return _vvsconv<rvector,cvector_slice,civector>(rv,sl); }
02418 INLINE civector operator |(const cvector_slice &sl1, const rvector_slice &sl2)
02419 #if(CXSC_INDEX_CHECK)
02420 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02421 #else
02422 throw()
02423 #endif
02424 { return _vsvsconv<rvector_slice,cvector_slice,civector>(sl2,sl1); }
02425 INLINE civector operator |(const rvector_slice &sl1, const cvector_slice &sl2)
02426 #if(CXSC_INDEX_CHECK)
02427 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02428 #else
02429 throw()
02430 #endif
02431 { return _vsvsconv<rvector_slice,cvector_slice,civector>(sl1,sl2); }
02432
02433
02434 INLINE civector operator |(const cvector &rv1, const cvector &rv2)
02435 #if(CXSC_INDEX_CHECK)
02436 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02437 #else
02438 throw()
02439 #endif
02440 { return _vvconv<cvector,cvector,civector>(rv2,rv1); }
02441 INLINE civector operator |(const cvector &rv, const cvector_slice &sl)
02442 #if(CXSC_INDEX_CHECK)
02443 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02444 #else
02445 throw()
02446 #endif
02447 { return _vvsconv<cvector,cvector_slice,civector>(rv,sl); }
02448 INLINE civector operator |(const cvector_slice &sl,const cvector &rv)
02449 #if(CXSC_INDEX_CHECK)
02450 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02451 #else
02452 throw()
02453 #endif
02454 { return _vvsconv<cvector,cvector_slice,civector>(rv,sl); }
02455 INLINE civector operator |(const cvector_slice &sl1, const cvector_slice &sl2)
02456 #if(CXSC_INDEX_CHECK)
02457 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02458 #else
02459 throw()
02460 #endif
02461 { return _vsvsconv<cvector_slice,cvector_slice,civector>(sl1,sl2); }
02462
02463
02464
02465 INLINE civector operator +(const cvector &rv1, const ivector &rv2)
02466 #if(CXSC_INDEX_CHECK)
02467 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02468 #else
02469 throw()
02470 #endif
02471 { return _vvplus<cvector,ivector,civector>(rv1,rv2); }
02472 INLINE civector operator +(const cvector &rv, const ivector_slice &sl)
02473 #if(CXSC_INDEX_CHECK)
02474 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02475 #else
02476 throw()
02477 #endif
02478 { return _vvsplus<cvector,ivector_slice,civector>(rv,sl); }
02479 INLINE civector operator +(const cvector_slice &sl, const ivector &rv)
02480 #if(CXSC_INDEX_CHECK)
02481 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02482 #else
02483 throw()
02484 #endif
02485 { return _vvsplus<ivector,cvector_slice,civector>(rv,sl); }
02486 INLINE civector operator +(const cvector_slice &sl1, const ivector_slice &sl2)
02487 #if(CXSC_INDEX_CHECK)
02488 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02489 #else
02490 throw()
02491 #endif
02492 { return _vsvsplus<cvector_slice,ivector_slice,civector>(sl1,sl2); }
02493
02494 INLINE civector operator +(const ivector &rv1, const cvector &rv2)
02495 #if(CXSC_INDEX_CHECK)
02496 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02497 #else
02498 throw()
02499 #endif
02500 { return _vvplus<cvector,ivector,civector>(rv2,rv1); }
02501 INLINE civector operator +(const ivector &rv, const cvector_slice &sl)
02502 #if(CXSC_INDEX_CHECK)
02503 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02504 #else
02505 throw()
02506 #endif
02507 { return _vvsplus<ivector,cvector_slice,civector>(rv,sl); }
02508 INLINE civector operator +(const ivector_slice &sl, const cvector &rv)
02509 #if(CXSC_INDEX_CHECK)
02510 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02511 #else
02512 throw()
02513 #endif
02514 { return _vvsplus<cvector,ivector_slice,civector>(rv,sl); }
02515 INLINE civector operator +(const ivector_slice &sl1, const cvector_slice &sl2)
02516 #if(CXSC_INDEX_CHECK)
02517 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02518 #else
02519 throw()
02520 #endif
02521 { return _vsvsplus<cvector_slice,ivector_slice,civector>(sl2,sl1); }
02522
02523 INLINE civector operator -(const cvector &rv1, const ivector &rv2)
02524 #if(CXSC_INDEX_CHECK)
02525 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02526 #else
02527 throw()
02528 #endif
02529 { return _vvminus<cvector,ivector,civector>(rv1,rv2); }
02530 INLINE civector operator -(const cvector &rv, const ivector_slice &sl)
02531 #if(CXSC_INDEX_CHECK)
02532 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02533 #else
02534 throw()
02535 #endif
02536 { return _vvsminus<cvector,ivector_slice,civector>(rv,sl); }
02537 INLINE civector operator -(const cvector_slice &sl, const ivector &rv)
02538 #if(CXSC_INDEX_CHECK)
02539 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02540 #else
02541 throw()
02542 #endif
02543 { return _vsvminus<cvector_slice,ivector,civector>(sl,rv); }
02544 INLINE civector operator -(const cvector_slice &sl1, const ivector_slice &sl2)
02545 #if(CXSC_INDEX_CHECK)
02546 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02547 #else
02548 throw()
02549 #endif
02550 { return _vsvsminus<cvector_slice,ivector_slice,civector>(sl1,sl2); }
02551
02552 INLINE civector operator -(const ivector &rv1, const cvector &rv2)
02553 #if(CXSC_INDEX_CHECK)
02554 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02555 #else
02556 throw()
02557 #endif
02558 { return _vvminus<ivector,cvector,civector>(rv1,rv2); }
02559 INLINE civector operator -(const ivector &rv, const cvector_slice &sl)
02560 #if(CXSC_INDEX_CHECK)
02561 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02562 #else
02563 throw()
02564 #endif
02565 { return _vvsminus<ivector,cvector_slice,civector>(rv,sl); }
02566 INLINE civector operator -(const ivector_slice &sl, const cvector &rv)
02567 #if(CXSC_INDEX_CHECK)
02568 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02569 #else
02570 throw()
02571 #endif
02572 { return _vsvminus<ivector_slice,cvector,civector>(sl,rv); }
02573 INLINE civector operator -(const ivector_slice &sl1, const cvector_slice &sl2)
02574 #if(CXSC_INDEX_CHECK)
02575 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02576 #else
02577 throw()
02578 #endif
02579 { return _vsvsminus<ivector_slice,cvector_slice,civector>(sl1,sl2); }
02580
02581 INLINE civector operator |(const cvector &rv1, const ivector &rv2)
02582 #if(CXSC_INDEX_CHECK)
02583 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02584 #else
02585 throw()
02586 #endif
02587 { return _vvconv<cvector,ivector,civector>(rv1,rv2); }
02588 INLINE civector operator |(const cvector &rv, const ivector_slice &sl)
02589 #if(CXSC_INDEX_CHECK)
02590 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02591 #else
02592 throw()
02593 #endif
02594 { return _vvsconv<cvector,ivector_slice,civector>(rv,sl); }
02595 INLINE civector operator |(const cvector_slice &sl, const ivector &rv)
02596 #if(CXSC_INDEX_CHECK)
02597 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02598 #else
02599 throw()
02600 #endif
02601 { return _vvsconv<ivector,cvector_slice,civector>(rv,sl); }
02602 INLINE civector operator |(const cvector_slice &sl1, const ivector_slice &sl2)
02603 #if(CXSC_INDEX_CHECK)
02604 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02605 #else
02606 throw()
02607 #endif
02608 { return _vsvsconv<cvector_slice,ivector_slice,civector>(sl1,sl2); }
02609
02610 INLINE civector operator |(const ivector &rv1, const cvector &rv2)
02611 #if(CXSC_INDEX_CHECK)
02612 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02613 #else
02614 throw()
02615 #endif
02616 { return _vvconv<cvector,ivector,civector>(rv2,rv1); }
02617 INLINE civector operator |(const ivector &rv, const cvector_slice &sl)
02618 #if(CXSC_INDEX_CHECK)
02619 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02620 #else
02621 throw()
02622 #endif
02623 { return _vvsconv<ivector,cvector_slice,civector>(rv,sl); }
02624 INLINE civector operator |(const ivector_slice &sl, const cvector &rv)
02625 #if(CXSC_INDEX_CHECK)
02626 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02627 #else
02628 throw()
02629 #endif
02630 { return _vvsconv<cvector,ivector_slice,civector>(rv,sl); }
02631 INLINE civector operator |(const ivector_slice &sl1, const cvector_slice &sl2)
02632 #if(CXSC_INDEX_CHECK)
02633 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02634 #else
02635 throw()
02636 #endif
02637 { return _vsvsconv<cvector_slice,ivector_slice,civector>(sl2,sl1); }
02638
02639 INLINE civector operator &(const cvector &rv1, const ivector &rv2)
02640 #if(CXSC_INDEX_CHECK)
02641 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02642 #else
02643 throw()
02644 #endif
02645 { return _vvsect<cvector,ivector,civector>(rv1,rv2); }
02646 INLINE civector operator &(const cvector &rv, const ivector_slice &sl)
02647 #if(CXSC_INDEX_CHECK)
02648 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02649 #else
02650 throw()
02651 #endif
02652 { return _vvssect<cvector,ivector_slice,civector>(rv,sl); }
02653 INLINE civector operator &(const cvector_slice &sl, const ivector &rv)
02654 #if(CXSC_INDEX_CHECK)
02655 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02656 #else
02657 throw()
02658 #endif
02659 { return _vvssect<ivector,cvector_slice,civector>(rv,sl); }
02660 INLINE civector operator &(const cvector_slice &sl1, const ivector_slice &sl2)
02661 #if(CXSC_INDEX_CHECK)
02662 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02663 #else
02664 throw()
02665 #endif
02666 { return _vsvssect<cvector_slice,ivector_slice,civector>(sl1,sl2); }
02667
02668 INLINE civector operator &(const ivector &rv1, const cvector &rv2)
02669 #if(CXSC_INDEX_CHECK)
02670 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02671 #else
02672 throw()
02673 #endif
02674 { return _vvsect<cvector,ivector,civector>(rv2,rv1); }
02675 INLINE civector operator &(const ivector &rv, const cvector_slice &sl)
02676 #if(CXSC_INDEX_CHECK)
02677 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02678 #else
02679 throw()
02680 #endif
02681 { return _vvssect<ivector,cvector_slice,civector>(rv,sl); }
02682 INLINE civector operator &(const ivector_slice &sl, const cvector &rv)
02683 #if(CXSC_INDEX_CHECK)
02684 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02685 #else
02686 throw()
02687 #endif
02688 { return _vvssect<cvector,ivector_slice,civector>(rv,sl); }
02689 INLINE civector operator &(const ivector_slice &sl1, const cvector_slice &sl2)
02690 #if(CXSC_INDEX_CHECK)
02691 throw(ERROR__OP_WITH_WRONG_DIM<civector>)
02692 #else
02693 throw()
02694 #endif
02695 { return _vsvssect<cvector_slice,ivector_slice,civector>(sl2,sl1); }
02696
02697
02699 INLINE civector civector::operator()(const intvector& p) {
02700 civector x(*this);
02701 for(int i=0 ; i<VecLen(x) ; i++)
02702 x[i+Lb(x)] = (*this)[p[i+Lb(p)]+Lb(*this)];
02703 return x;
02704
02705 }
02706
02707 INLINE bool in(const civector& v1, const civector& v2) {
02708 int n = VecLen(v1);
02709 bool ret = true;
02710 for(int i=0 ; i<n && ret ; i++) {
02711 ret = in(v1[Lb(v1)+i], v2[Lb(v2)+i]);
02712 }
02713 return ret;
02714 }
02715
02716
02717 }
02718
02719 #endif
02720