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_SCIVECTOR_HPP_INCLUDED
00027 #define _CXSC_SCIVECTOR_HPP_INCLUDED
00028
00029 #include <cinterval.hpp>
00030 #include <civector.hpp>
00031 #include <vector>
00032 #include <iostream>
00033 #include <srvector.hpp>
00034 #include <scvector.hpp>
00035 #include <sivector.hpp>
00036 #include <sparsecidot.hpp>
00037 #include <sparsevector.hpp>
00038
00039 namespace cxsc {
00040
00041 class srvector_slice;
00042 class srmatrix;
00043 class srmatrix_slice;
00044 class srmatrix_subv;
00045 class scvector_slice;
00046 class scmatrix;
00047 class scmatrix_slice;
00048 class scmatrix_subv;
00049 class sivector_slice;
00050 class simatrix;
00051 class simatrix_slice;
00052 class simatrix_subv;
00053 class scivector_slice;
00054 class scimatrix_slice;
00055 class scimatrix_subv;
00056
00057 class scivector {
00058 private:
00059 std::vector<int> p;
00060 std::vector<cinterval> x;
00061 int lb;
00062 int ub;
00063 int n;
00064
00065 public:
00066 scivector() : lb(0), ub(-1) , n(0) {
00067 }
00068
00069 explicit scivector(const int s) : lb(1), ub(s), n(s) {
00070 p.reserve((int)(s*0.1));
00071 x.reserve((int)(s*0.1));
00072 }
00073
00074 scivector(const int s, const int b) : lb(1), ub(s), n(s) {
00075 p.reserve(b);
00076 x.reserve(b);
00077 }
00078
00079 scivector(const civector& v) : lb(Lb(v)), ub(Ub(v)), n(VecLen(v)) {
00080 for(int i=lb ; i<=ub ; i++) {
00081 if(v[i] != 0.0) {
00082 p.push_back(i-lb);
00083 x.push_back(v[i]);
00084 }
00085 }
00086 }
00087
00088 scivector(const cvector& v) : lb(Lb(v)), ub(Ub(v)), n(VecLen(v)) {
00089 for(int i=lb ; i<=ub ; i++) {
00090 if(v[i] != 0.0) {
00091 p.push_back(i-lb);
00092 x.push_back(cinterval(v[i]));
00093 }
00094 }
00095 }
00096
00097 scivector(const rvector& v) : lb(Lb(v)), ub(Ub(v)), n(VecLen(v)) {
00098 for(int i=lb ; i<=ub ; i++) {
00099 if(v[i] != 0.0) {
00100 p.push_back(i-lb);
00101 x.push_back(cinterval(v[i]));
00102 }
00103 }
00104 }
00105
00106 scivector(const int n, const int nnz, const intvector& index, const civector& values) : lb(1), ub(n) {
00107 this->n = n;
00108 for(int i=0 ; i<nnz ; i++) {
00109 if(values[i+Lb(values)] != 0.0) {
00110 p.push_back(index[i+Lb(index)]);
00111 x.push_back(values[i+Lb(values)]);
00112 }
00113 }
00114 }
00115
00116 scivector(const int n, const int nnz, const int* index, const cinterval* values) : lb(1), ub(n) {
00117 this->n = n;
00118 for(int i=0 ; i<nnz ; i++) {
00119 if(values[i] != 0.0) {
00120 p.push_back(index[i]);
00121 x.push_back(values[i]);
00122 }
00123 }
00124 }
00125
00126 scivector(const srvector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00127 x.reserve(v.get_nnz());
00128 for(int i=0 ; i<v.get_nnz() ; i++)
00129 x.push_back(cinterval(v.x[i]));
00130 }
00131
00132 scivector(const scvector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00133 x.reserve(v.get_nnz());
00134 for(int i=0 ; i<v.get_nnz() ; i++)
00135 x.push_back(cinterval(v.x[i]));
00136 }
00137
00138 scivector(const sivector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00139 x.reserve(v.get_nnz());
00140 for(int i=0 ; i<v.get_nnz() ; i++)
00141 x.push_back(cinterval(v.x[i]));
00142 }
00143
00144 scivector(const srvector_slice&);
00145 scivector(const scvector_slice&);
00146 scivector(const sivector_slice&);
00147 scivector(const scivector_slice&);
00148 scivector(const srmatrix_subv& A);
00149 scivector(const scmatrix_subv& A);
00150 scivector(const simatrix_subv& A);
00151 scivector(const scimatrix_subv& A);
00152
00153 std::vector<int>& row_indices() {
00154 return p;
00155 }
00156
00157 std::vector<cinterval>& values() {
00158 return x;
00159 }
00160
00161 const std::vector<int>& row_indices() const {
00162 return p;
00163 }
00164
00165 const std::vector<cinterval>& values() const {
00166 return x;
00167 }
00168
00169 int get_nnz() const {
00170 return x.size();
00171 }
00172
00173 real density() const {
00174 return (double)x.size()/n;
00175 }
00176
00177 void dropzeros() {
00178 for(int i=0 ; i<get_nnz() ; i++) {
00179 if(x[i] == 0.0) {
00180 x.erase(x.begin()+i);
00181 p.erase(p.begin()+i);
00182 }
00183 }
00184 }
00185
00186 scivector& operator=(const srvector& v) {
00187 n = v.n;
00188 p = v.p;
00189 x.clear();
00190 x.reserve(v.get_nnz());
00191 for(unsigned int i=0 ; i<v.x.size() ; i++)
00192 x[i] = cinterval(v.x[i]);
00193 return *this;
00194 }
00195
00196 scivector& operator=(const sivector& v) {
00197 n = v.n;
00198 p = v.p;
00199 x.clear();
00200 x.reserve(v.get_nnz());
00201 for(unsigned int i=0 ; i<v.x.size() ; i++)
00202 x[i] = cinterval(v.x[i]);
00203 return *this;
00204 }
00205
00206 scivector& operator=(const scvector& v) {
00207 n = v.n;
00208 p = v.p;
00209 x.clear();
00210 x.reserve(v.get_nnz());
00211 for(unsigned int i=0 ; i<v.x.size() ; i++)
00212 x[i] = cinterval(v.x[i]);
00213 return *this;
00214 }
00215
00216 scivector& operator=(const real& v) {
00217 return sp_vs_assign<scivector,real,cinterval>(*this,v);
00218 }
00219
00220 scivector& operator=(const complex& v) {
00221 return sp_vs_assign<scivector,complex,cinterval>(*this,v);
00222 }
00223
00224 scivector& operator=(const interval& v) {
00225 return sp_vs_assign<scivector,interval,cinterval>(*this,v);
00226 }
00227
00228 scivector& operator=(const cinterval& v) {
00229 return sp_vs_assign<scivector,cinterval,cinterval>(*this,v);
00230 }
00231
00232 scivector& operator=(const rvector& v) {
00233 return spf_vv_assign<scivector,rvector,cinterval>(*this,v);
00234 }
00235
00236 scivector& operator=(const cvector& v) {
00237 return spf_vv_assign<scivector,cvector,cinterval>(*this,v);
00238 }
00239
00240 scivector& operator=(const ivector& v) {
00241 return spf_vv_assign<scivector,ivector,cinterval>(*this,v);
00242 }
00243
00244 scivector& operator=(const civector& v) {
00245 return spf_vv_assign<scivector,civector,cinterval>(*this,v);
00246 }
00247
00248 scivector& operator=(const rvector_slice& v) {
00249 return spf_vv_assign<scivector,rvector_slice,cinterval>(*this,v);
00250 }
00251
00252 scivector& operator=(const cvector_slice& v) {
00253 return spf_vv_assign<scivector,cvector_slice,cinterval>(*this,v);
00254 }
00255
00256 scivector& operator=(const ivector_slice& v) {
00257 return spf_vv_assign<scivector,ivector_slice,cinterval>(*this,v);
00258 }
00259
00260 scivector& operator=(const civector_slice& v) {
00261 return spf_vv_assign<scivector,civector_slice,cinterval>(*this,v);
00262 }
00263
00264 scivector& operator=(const srvector_slice&);
00265 scivector& operator=(const scvector_slice&);
00266 scivector& operator=(const sivector_slice&);
00267 scivector& operator=(const scivector_slice&);
00268
00269 cinterval& operator[](const int i) {
00270 #if(CXSC_INDEX_CHECK)
00271 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator[](const int)"));
00272 #endif
00273 int k;
00274
00275 for(k=0 ; k<get_nnz() && p[k]<=i-lb ; k++) {
00276 if(p[k] == i-lb)
00277 return x[k];
00278 }
00279
00280 p.insert(p.begin() + k, i-lb);
00281 x.insert(x.begin() + k, cinterval(0.0));
00282
00283 return x[k];
00284 }
00285
00286 cinterval operator[](const int i) const {
00287 #if(CXSC_INDEX_CHECK)
00288 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator[](const int)"));
00289 #endif
00290 return (*this)(i);
00291 }
00292
00293 cinterval operator()(const int i) const {
00294 #if(CXSC_INDEX_CHECK)
00295 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator()(const int)"));
00296 #endif
00297 cinterval r(0.0);
00298
00299 for(int k=0 ; k<get_nnz() && p[k]<=i-lb ; k++) {
00300 if(p[k] == i-lb)
00301 r = x[k];
00302 }
00303
00304 return r;
00305 }
00306
00307 scivector operator()(const intvector& per) {
00308 scivector v(n,get_nnz());
00309 intvector pinv = perminv(per);
00310
00311 std::map<int,cinterval> work;
00312 for(int i=0 ; i<get_nnz() ; i++)
00313 work.insert(std::make_pair(pinv[Lb(pinv)+p[i]], x[i]));
00314
00315 for(std::map<int,cinterval>::iterator it=work.begin() ; it!=work.end() ; it++) {
00316 v.p.push_back(it->first);
00317 v.x.push_back(it->second);
00318 }
00319
00320 return v;
00321 }
00322
00323 scivector operator()(const intmatrix& P) {
00324 intvector p = permvec(P);
00325 return (*this)(p);
00326 }
00327
00328
00329 scivector_slice operator()(const int, const int);
00330
00331 scivector& operator*=(const real& s) {
00332 return sp_vs_multassign(*this,s);
00333 }
00334
00335 scivector& operator*=(const complex& s) {
00336 return sp_vs_multassign(*this,s);
00337 }
00338
00339 scivector& operator*=(const interval& s) {
00340 return sp_vs_multassign(*this,s);
00341 }
00342
00343 scivector& operator*=(const cinterval& s) {
00344 return sp_vs_multassign(*this,s);
00345 }
00346
00347 scivector& operator/=(const real& s) {
00348 return sp_vs_divassign(*this,s);
00349 }
00350
00351 scivector& operator/=(const complex& s) {
00352 return sp_vs_divassign(*this,s);
00353 }
00354
00355 scivector& operator/=(const interval& s) {
00356 return sp_vs_divassign(*this,s);
00357 }
00358
00359 scivector& operator/=(const cinterval& s) {
00360 return sp_vs_divassign(*this,s);
00361 }
00362
00363 scivector& operator+=(const rvector& v) {
00364 return spf_vv_addassign(*this,v);
00365 }
00366
00367 scivector& operator+=(const cvector& v) {
00368 return spf_vv_addassign(*this,v);
00369 }
00370
00371 scivector& operator+=(const ivector& v) {
00372 return spf_vv_addassign(*this,v);
00373 }
00374
00375 scivector& operator+=(const civector& v) {
00376 return spf_vv_addassign(*this,v);
00377 }
00378
00379 scivector& operator+=(const rvector_slice& v) {
00380 return spf_vv_addassign(*this,v);
00381 }
00382
00383 scivector& operator+=(const cvector_slice& v) {
00384 return spf_vv_addassign(*this,v);
00385 }
00386
00387 scivector& operator+=(const ivector_slice& v) {
00388 return spf_vv_addassign(*this,v);
00389 }
00390
00391 scivector& operator+=(const civector_slice& v) {
00392 return spf_vv_addassign(*this,v);
00393 }
00394
00395 scivector& operator+=(const srvector& v) {
00396 return spsp_vv_addassign(*this,v);
00397 }
00398
00399 scivector& operator+=(const scvector& v) {
00400 return spsp_vv_addassign(*this,v);
00401 }
00402
00403 scivector& operator+=(const sivector& v) {
00404 return spsp_vv_addassign(*this,v);
00405 }
00406
00407 scivector& operator+=(const scivector& v) {
00408 return spsp_vv_addassign(*this,v);
00409 }
00410
00411 scivector& operator-=(const rvector& v) {
00412 return spf_vv_subassign(*this,v);
00413 }
00414
00415 scivector& operator-=(const cvector& v) {
00416 return spf_vv_subassign(*this,v);
00417 }
00418
00419 scivector& operator-=(const ivector& v) {
00420 return spf_vv_subassign(*this,v);
00421 }
00422
00423 scivector& operator-=(const civector& v) {
00424 return spf_vv_subassign(*this,v);
00425 }
00426
00427 scivector& operator-=(const rvector_slice& v) {
00428 return spf_vv_subassign(*this,v);
00429 }
00430
00431 scivector& operator-=(const cvector_slice& v) {
00432 return spf_vv_subassign(*this,v);
00433 }
00434
00435 scivector& operator-=(const ivector_slice& v) {
00436 return spf_vv_subassign(*this,v);
00437 }
00438
00439 scivector& operator-=(const civector_slice& v) {
00440 return spf_vv_subassign(*this,v);
00441 }
00442
00443 scivector& operator-=(const srvector& v) {
00444 return spsp_vv_subassign(*this,v);
00445 }
00446
00447 scivector& operator-=(const scvector& v) {
00448 return spsp_vv_subassign(*this,v);
00449 }
00450
00451 scivector& operator-=(const sivector& v) {
00452 return spsp_vv_subassign(*this,v);
00453 }
00454
00455 scivector& operator-=(const scivector& v) {
00456 return spsp_vv_subassign(*this,v);
00457 }
00458
00459 scivector& operator|=(const rvector& v) {
00460 return spf_vv_hullassign(*this,v);
00461 }
00462
00463 scivector& operator|=(const cvector& v) {
00464 return spf_vv_hullassign(*this,v);
00465 }
00466
00467 scivector& operator|=(const ivector& v) {
00468 return spf_vv_hullassign(*this,v);
00469 }
00470
00471 scivector& operator|=(const civector& v) {
00472 return spf_vv_hullassign(*this,v);
00473 }
00474
00475 scivector& operator|=(const rvector_slice& v) {
00476 return spf_vv_hullassign(*this,v);
00477 }
00478
00479 scivector& operator|=(const cvector_slice& v) {
00480 return spf_vv_hullassign(*this,v);
00481 }
00482
00483 scivector& operator|=(const ivector_slice& v) {
00484 return spf_vv_hullassign(*this,v);
00485 }
00486
00487 scivector& operator|=(const civector_slice& v) {
00488 return spf_vv_hullassign(*this,v);
00489 }
00490
00491 scivector& operator|=(const srvector& v) {
00492 return spsp_vv_hullassign(*this,v);
00493 }
00494
00495 scivector& operator|=(const scvector& v) {
00496 return spsp_vv_hullassign(*this,v);
00497 }
00498
00499 scivector& operator|=(const sivector& v) {
00500 return spsp_vv_hullassign(*this,v);
00501 }
00502
00503 scivector& operator|=(const scivector& v) {
00504 return spsp_vv_hullassign(*this,v);
00505 }
00506
00507 scivector& operator&=(const ivector& v) {
00508 return spf_vv_intersectassign(*this,v);
00509 }
00510
00511 scivector& operator&=(const civector& v) {
00512 return spf_vv_intersectassign(*this,v);
00513 }
00514
00515 scivector& operator&=(const ivector_slice& v) {
00516 return spf_vv_intersectassign(*this,v);
00517 }
00518
00519 scivector& operator&=(const civector_slice& v) {
00520 return spf_vv_intersectassign(*this,v);
00521 }
00522
00523 scivector& operator&=(const sivector& v) {
00524 return spsp_vv_intersectassign(*this,v);
00525 }
00526
00527 scivector& operator&=(const scivector& v) {
00528 return spsp_vv_intersectassign(*this,v);
00529 }
00530
00531 scivector& operator+=(const srvector_slice&);
00532 scivector& operator+=(const scvector_slice&);
00533 scivector& operator+=(const sivector_slice&);
00534 scivector& operator+=(const scivector_slice&);
00535 scivector& operator-=(const srvector_slice&);
00536 scivector& operator-=(const scvector_slice&);
00537 scivector& operator-=(const sivector_slice&);
00538 scivector& operator-=(const scivector_slice&);
00539 scivector& operator|=(const srvector_slice&);
00540 scivector& operator|=(const scvector_slice&);
00541 scivector& operator|=(const sivector_slice&);
00542 scivector& operator|=(const scivector_slice&);
00543 scivector& operator&=(const sivector_slice&);
00544 scivector& operator&=(const scivector_slice&);
00545
00546 friend void SetLb(scivector&, const int);
00547 friend void SetUb(scivector&, const int);
00548 friend int Lb(const scivector&);
00549 friend int Ub(const scivector&);
00550 friend sivector Re(const scivector&);
00551 friend sivector Im(const scivector&);
00552 friend scvector Inf(const scivector&);
00553 friend scvector Sup(const scivector&);
00554 friend srvector InfRe(const scivector&);
00555 friend srvector InfIm(const scivector&);
00556 friend srvector SupRe(const scivector&);
00557 friend srvector SupIm(const scivector&);
00558 friend scivector conj(const scivector&);
00559 friend scivector conj(const scivector_slice&);
00560 friend sivector abs(const scivector&);
00561 friend scvector mid(const scivector&);
00562 friend scvector diam(const scivector&);
00563 friend int VecLen(const scivector&);
00564
00565 friend class srvector_slice;
00566 friend class scvector_slice;
00567 friend class sivector_slice;
00568 friend class scivector_slice;
00569 friend class civector;
00570 friend class civector_slice;
00571
00572 #include "vector_friend_declarations.inl"
00573 };
00574
00575 inline civector::civector(const srvector& v) {
00576 l = v.lb;
00577 u = v.ub;
00578 size = v.n;
00579 dat = new cinterval[v.n];
00580 for(int i=0 ; i<v.n ; i++)
00581 dat[i] = 0.0;
00582 for(int i=0 ; i<v.get_nnz() ; i++)
00583 dat[v.p[i]] = v.x[i];
00584 }
00585
00586 inline civector::civector(const scvector& v) {
00587 l = v.lb;
00588 u = v.ub;
00589 size = v.n;
00590 dat = new cinterval[v.n];
00591 for(int i=0 ; i<v.n ; i++)
00592 dat[i] = 0.0;
00593 for(int i=0 ; i<v.get_nnz() ; i++)
00594 dat[v.p[i]] = v.x[i];
00595 }
00596
00597 inline civector::civector(const sivector& v) {
00598 l = v.lb;
00599 u = v.ub;
00600 size = v.n;
00601 dat = new cinterval[v.n];
00602 for(int i=0 ; i<v.n ; i++)
00603 dat[i] = 0.0;
00604 for(int i=0 ; i<v.get_nnz() ; i++)
00605 dat[v.p[i]] = v.x[i];
00606 }
00607
00608 inline civector::civector(const scivector& v) {
00609 l = v.lb;
00610 u = v.ub;
00611 size = v.n;
00612 dat = new cinterval[v.n];
00613 for(int i=0 ; i<v.n ; i++)
00614 dat[i] = 0.0;
00615 for(int i=0 ; i<v.get_nnz() ; i++)
00616 dat[v.p[i]] = v.x[i];
00617 }
00618
00619 inline civector& civector::operator=(const scivector& v) {
00620 return fsp_vv_assign<civector,scivector,cinterval>(*this,v);
00621 }
00622
00623 inline civector& civector::operator=(const scivector_slice& v) {
00624 return fsl_vv_assign<civector,scivector_slice,cinterval>(*this,v);
00625 }
00626
00627 inline civector& civector::operator=(const srvector& v) {
00628 return fsp_vv_assign<civector,srvector,cinterval>(*this,v);
00629 }
00630
00631 inline civector& civector::operator=(const srvector_slice& v) {
00632 return fsl_vv_assign<civector,srvector_slice,cinterval>(*this,v);
00633 }
00634
00635 inline civector& civector::operator=(const scvector& v) {
00636 return fsp_vv_assign<civector,scvector,cinterval>(*this,v);
00637 }
00638
00639 inline civector& civector::operator=(const scvector_slice& v) {
00640 return fsl_vv_assign<civector,scvector_slice,cinterval>(*this,v);
00641 }
00642
00643 inline civector& civector::operator=(const sivector& v) {
00644 return fsp_vv_assign<civector,sivector,cinterval>(*this,v);
00645 }
00646
00647 inline civector& civector::operator=(const sivector_slice& v) {
00648 return fsl_vv_assign<civector,sivector_slice,cinterval>(*this,v);
00649 }
00650
00651 inline void SetLb(scivector& v, const int i) {
00652 v.lb = i;
00653 v.ub = v.lb + v.n - 1;
00654 }
00655
00656 inline void SetUb(scivector& v, const int j) {
00657 v.ub = j;
00658 v.lb = v.ub - v.n + 1;
00659 }
00660
00661 inline int Lb(const scivector& v) {
00662 return v.lb;
00663 }
00664
00665 inline int Ub(const scivector& v) {
00666 return v.ub;
00667 }
00668
00669 inline void Resize(scivector& v) {
00670 sp_v_resize(v);
00671 }
00672
00673 inline void Resize(scivector& v, const int n) {
00674 sp_v_resize(v,n);
00675 }
00676
00677 inline void Resize(scivector& v, const int l, const int u) {
00678 sp_v_resize(v,l,u);
00679 }
00680
00681 inline sivector abs(const scivector& v) {
00682 sivector res(v.n, v.get_nnz());
00683 res.lb = v.lb;
00684 res.ub = v.ub;
00685 res.p = v.p;
00686 for(int i=0 ; i<v.get_nnz() ; i++)
00687 res.x.push_back(abs(v.x[i]));
00688 return res;
00689 }
00690
00691 inline scivector conj(const scivector& v) {
00692 scivector res(v.n, v.get_nnz());
00693 res.lb = v.lb;
00694 res.ub = v.ub;
00695 res.p = v.p;
00696 for(int i=0 ; i<v.get_nnz() ; i++)
00697 res.x.push_back(conj(v.x[i]));
00698 return res;
00699 }
00700
00701 inline scvector mid(const scivector& v) {
00702 scvector res(v.n, v.get_nnz());
00703 res.lb = v.lb;
00704 res.ub = v.ub;
00705 res.p = v.p;
00706 for(int i=0 ; i<v.get_nnz() ; i++)
00707 res.x.push_back(mid(v.x[i]));
00708 return res;
00709 }
00710
00711 inline scvector diam(const scivector& v) {
00712 scvector res(v.n, v.get_nnz());
00713 res.lb = v.lb;
00714 res.ub = v.ub;
00715 res.p = v.p;
00716 for(int i=0 ; i<v.get_nnz() ; i++)
00717 res.x.push_back(diam(v.x[i]));
00718 return res;
00719 }
00720
00721 inline sivector Re(const scivector& v) {
00722 sivector res(v.n, v.get_nnz());
00723 res.lb = v.lb;
00724 res.ub = v.ub;
00725 res.p = v.p;
00726 for(int i=0 ; i<v.get_nnz() ; i++)
00727 res.x[i] = Re(v.x[i]);
00728 return res;
00729 }
00730
00731 inline sivector Im(const scivector& v) {
00732 sivector res(v.n, v.get_nnz());
00733 res.lb = v.lb;
00734 res.ub = v.ub;
00735 res.p = v.p;
00736 for(int i=0 ; i<v.get_nnz() ; i++)
00737 res.x[i] = Im(v.x[i]);
00738 return res;
00739 }
00740
00741 inline scvector Inf(const scivector& v) {
00742 scvector res(v.n, v.get_nnz());
00743 res.lb = v.lb;
00744 res.ub = v.ub;
00745 res.p = v.p;
00746 for(int i=0 ; i<v.get_nnz() ; i++)
00747 res.x[i] = Inf(v.x[i]);
00748 return res;
00749 }
00750
00751 inline scvector Sup(const scivector& v) {
00752 scvector res(v.n, v.get_nnz());
00753 res.lb = v.lb;
00754 res.ub = v.ub;
00755 res.p = v.p;
00756 for(int i=0 ; i<v.get_nnz() ; i++)
00757 res.x[i] = Sup(v.x[i]);
00758 return res;
00759 }
00760
00761 inline srvector InfRe(const scivector& v) {
00762 srvector res(v.n, v.get_nnz());
00763 res.lb = v.lb;
00764 res.ub = v.ub;
00765 res.p = v.p;
00766 for(int i=0 ; i<v.get_nnz() ; i++)
00767 res.x[i] = InfRe(v.x[i]);
00768 return res;
00769 }
00770
00771 inline srvector InfIm(const scivector& v) {
00772 srvector res(v.n, v.get_nnz());
00773 res.lb = v.lb;
00774 res.ub = v.ub;
00775 res.p = v.p;
00776 for(int i=0 ; i<v.get_nnz() ; i++)
00777 res.x[i] = InfIm(v.x[i]);
00778 return res;
00779 }
00780
00781 inline srvector SupRe(const scivector& v) {
00782 srvector res(v.n, v.get_nnz());
00783 res.lb = v.lb;
00784 res.ub = v.ub;
00785 res.p = v.p;
00786 for(int i=0 ; i<v.get_nnz() ; i++)
00787 res.x[i] = SupRe(v.x[i]);
00788 return res;
00789 }
00790
00791 inline srvector SupIm(const scivector& v) {
00792 srvector res(v.n, v.get_nnz());
00793 res.lb = v.lb;
00794 res.ub = v.ub;
00795 res.p = v.p;
00796 for(int i=0 ; i<v.get_nnz() ; i++)
00797 res.x[i] = SupIm(v.x[i]);
00798 return res;
00799 }
00800
00801 inline int VecLen(const scivector& v) {
00802 return v.n;
00803 }
00804
00805 inline bool in (const scivector& v1, const scivector& v2) {
00806 for(int i=0 ; i<VecLen(v1) ; i++)
00807 if(!in(v1(i+Lb(v1)), v2(i+Lb(v2)))) return false;
00808 return true;
00809 }
00810
00811 inline scivector operator-(const scivector& v) {
00812 return sp_v_negative(v);
00813 }
00814
00815 inline cinterval operator*(const scivector& v1, const cvector& v2) {
00816 return spf_vv_mult<scivector,cvector,cinterval,sparse_cidot>(v1,v2);
00817 }
00818
00819 inline cinterval operator*(const scivector& v1, const rvector& v2) {
00820 return spf_vv_mult<scivector,rvector,cinterval,sparse_cidot>(v1,v2);
00821 }
00822
00823 inline cinterval operator*(const scivector& v1, const ivector& v2) {
00824 return spf_vv_mult<scivector,ivector,cinterval,sparse_cidot>(v1,v2);
00825 }
00826
00827 inline cinterval operator*(const scivector& v1, const civector& v2) {
00828 return spf_vv_mult<scivector,civector,cinterval,sparse_cidot>(v1,v2);
00829 }
00830
00831 inline cinterval operator*(const scvector& v1, const civector& v2) {
00832 return spf_vv_mult<scvector,civector,cinterval,sparse_cidot>(v1,v2);
00833 }
00834
00835 inline cinterval operator*(const srvector& v1, const civector& v2) {
00836 return spf_vv_mult<srvector,civector,cinterval,sparse_cidot>(v1,v2);
00837 }
00838
00839 inline cinterval operator*(const sivector& v1, const civector& v2) {
00840 return spf_vv_mult<sivector,civector,cinterval,sparse_cidot>(v1,v2);
00841 }
00842
00843 inline cinterval operator*(const scvector& v1, const ivector& v2) {
00844 return spf_vv_mult<scvector,ivector,cinterval,sparse_cidot>(v1,v2);
00845 }
00846
00847 inline cinterval operator*(const sivector& v1, const cvector& v2) {
00848 return spf_vv_mult<sivector,cvector,cinterval,sparse_cidot>(v1,v2);
00849 }
00850
00851 inline cinterval operator*(const rvector& v1, const scivector& v2) {
00852 return fsp_vv_mult<rvector,scivector,cinterval,sparse_cidot>(v1,v2);
00853 }
00854
00855 inline cinterval operator*(const cvector& v1, const scivector& v2) {
00856 return fsp_vv_mult<cvector,scivector,cinterval,sparse_cidot>(v1,v2);
00857 }
00858
00859 inline cinterval operator*(const ivector& v1, const scivector& v2) {
00860 return fsp_vv_mult<ivector,scivector,cinterval,sparse_cidot>(v1,v2);
00861 }
00862
00863 inline cinterval operator*(const civector& v1, const scivector& v2) {
00864 return fsp_vv_mult<civector,scivector,cinterval,sparse_cidot>(v1,v2);
00865 }
00866
00867 inline cinterval operator*(const civector& v1, const srvector& v2) {
00868 return fsp_vv_mult<civector,srvector,cinterval,sparse_cidot>(v1,v2);
00869 }
00870
00871 inline cinterval operator*(const civector& v1, const scvector& v2) {
00872 return fsp_vv_mult<civector,scvector,cinterval,sparse_cidot>(v1,v2);
00873 }
00874
00875 inline cinterval operator*(const civector& v1, const sivector& v2) {
00876 return fsp_vv_mult<civector,sivector,cinterval,sparse_cidot>(v1,v2);
00877 }
00878
00879 inline cinterval operator*(const ivector& v1, const scvector& v2) {
00880 return fsp_vv_mult<ivector,scvector,cinterval,sparse_cidot>(v1,v2);
00881 }
00882
00883 inline cinterval operator*(const cvector& v1, const sivector& v2) {
00884 return fsp_vv_mult<cvector,sivector,cinterval,sparse_cidot>(v1,v2);
00885 }
00886
00887 inline cinterval operator*(const scivector& v1, const cvector_slice& v2) {
00888 return spf_vv_mult<scivector,cvector_slice,cinterval,sparse_cidot>(v1,v2);
00889 }
00890
00891 inline cinterval operator*(const scivector& v1, const rvector_slice& v2) {
00892 return spf_vv_mult<scivector,rvector_slice,cinterval,sparse_cidot>(v1,v2);
00893 }
00894
00895 inline cinterval operator*(const scivector& v1, const ivector_slice& v2) {
00896 return spf_vv_mult<scivector,ivector_slice,cinterval,sparse_cidot>(v1,v2);
00897 }
00898
00899 inline cinterval operator*(const scivector& v1, const civector_slice& v2) {
00900 return spf_vv_mult<scivector,civector_slice,cinterval,sparse_cidot>(v1,v2);
00901 }
00902
00903 inline cinterval operator*(const scvector& v1, const civector_slice& v2) {
00904 return spf_vv_mult<scvector,civector_slice,cinterval,sparse_cidot>(v1,v2);
00905 }
00906
00907 inline cinterval operator*(const srvector& v1, const civector_slice& v2) {
00908 return spf_vv_mult<srvector,civector_slice,cinterval,sparse_cidot>(v1,v2);
00909 }
00910
00911 inline cinterval operator*(const sivector& v1, const civector_slice& v2) {
00912 return spf_vv_mult<sivector,civector_slice,cinterval,sparse_cidot>(v1,v2);
00913 }
00914
00915 inline cinterval operator*(const scvector& v1, const ivector_slice& v2) {
00916 return spf_vv_mult<scvector,ivector_slice,cinterval,sparse_cidot>(v1,v2);
00917 }
00918
00919 inline cinterval operator*(const sivector& v1, const cvector_slice& v2) {
00920 return spf_vv_mult<sivector,cvector_slice,cinterval,sparse_cidot>(v1,v2);
00921 }
00922
00923 inline cinterval operator*(const rvector_slice& v1, const scivector& v2) {
00924 return fsp_vv_mult<rvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
00925 }
00926
00927 inline cinterval operator*(const cvector_slice& v1, const scivector& v2) {
00928 return fsp_vv_mult<cvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
00929 }
00930
00931 inline cinterval operator*(const ivector_slice& v1, const scivector& v2) {
00932 return fsp_vv_mult<ivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
00933 }
00934
00935 inline cinterval operator*(const civector_slice& v1, const scivector& v2) {
00936 return fsp_vv_mult<civector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
00937 }
00938
00939 inline cinterval operator*(const civector_slice& v1, const srvector& v2) {
00940 return fsp_vv_mult<civector_slice,srvector,cinterval,sparse_cidot>(v1,v2);
00941 }
00942
00943 inline cinterval operator*(const civector_slice& v1, const scvector& v2) {
00944 return fsp_vv_mult<civector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
00945 }
00946
00947 inline cinterval operator*(const civector_slice& v1, const sivector& v2) {
00948 return fsp_vv_mult<civector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
00949 }
00950
00951 inline cinterval operator*(const ivector_slice& v1, const scvector& v2) {
00952 return fsp_vv_mult<ivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
00953 }
00954
00955 inline cinterval operator*(const cvector_slice& v1, const sivector& v2) {
00956 return fsp_vv_mult<cvector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
00957 }
00958
00959 inline cinterval operator*(const scivector& v1, const srvector& v2) {
00960 return spsp_vv_mult<scivector,srvector,cinterval,sparse_cidot>(v1,v2);
00961 }
00962
00963 inline cinterval operator*(const scivector& v1, const scvector& v2) {
00964 return spsp_vv_mult<scivector,scvector,cinterval,sparse_cidot>(v1,v2);
00965 }
00966
00967 inline cinterval operator*(const scivector& v1, const sivector& v2) {
00968 return spsp_vv_mult<scivector,sivector,cinterval,sparse_cidot>(v1,v2);
00969 }
00970
00971 inline cinterval operator*(const scivector& v1, const scivector& v2) {
00972 return spsp_vv_mult<scivector,scivector,cinterval,sparse_cidot>(v1,v2);
00973 }
00974
00975 inline cinterval operator*(const srvector& v1, const scivector& v2) {
00976 return spsp_vv_mult<srvector,scivector,cinterval,sparse_cidot>(v1,v2);
00977 }
00978
00979 inline cinterval operator*(const scvector& v1, const scivector& v2) {
00980 return spsp_vv_mult<scvector,scivector,cinterval,sparse_cidot>(v1,v2);
00981 }
00982
00983 inline cinterval operator*(const sivector& v1, const scivector& v2) {
00984 return spsp_vv_mult<sivector,scivector,cinterval,sparse_cidot>(v1,v2);
00985 }
00986
00987 inline cinterval operator*(const scvector& v1, const sivector& v2) {
00988 return spsp_vv_mult<scvector,sivector,cinterval,sparse_cidot>(v1,v2);
00989 }
00990
00991 inline cinterval operator*(const sivector& v1, const scvector& v2) {
00992 return spsp_vv_mult<sivector,scvector,cinterval,sparse_cidot>(v1,v2);
00993 }
00994
00995 inline scivector operator*(const scivector& v, const real& s) {
00996 return sp_vs_mult<scivector,real,scivector>(v,s);
00997 }
00998
00999 inline scivector operator*(const scivector& v, const complex& s) {
01000 return sp_vs_mult<scivector,complex,scivector>(v,s);
01001 }
01002
01003 inline scivector operator*(const scivector& v, const interval& s) {
01004 return sp_vs_mult<scivector,interval,scivector>(v,s);
01005 }
01006
01007 inline scivector operator*(const scivector& v, const cinterval& s) {
01008 return sp_vs_mult<scivector,cinterval,scivector>(v,s);
01009 }
01010
01011 inline scivector operator*(const scvector& v, const interval& s) {
01012 return sp_vs_mult<scvector,interval,scivector>(v,s);
01013 }
01014
01015 inline scivector operator*(const sivector& v, const complex& s) {
01016 return sp_vs_mult<sivector,complex,scivector>(v,s);
01017 }
01018
01019 inline scivector operator/(const scivector& v, const real& s) {
01020 return sp_vs_div<scivector,real,scivector>(v,s);
01021 }
01022
01023 inline scivector operator/(const scivector& v, const complex& s) {
01024 return sp_vs_div<scivector,complex,scivector>(v,s);
01025 }
01026
01027 inline scivector operator/(const scivector& v, const interval& s) {
01028 return sp_vs_div<scivector,interval,scivector>(v,s);
01029 }
01030
01031 inline scivector operator/(const scivector& v, const cinterval& s) {
01032 return sp_vs_div<scivector,cinterval,scivector>(v,s);
01033 }
01034
01035 inline scivector operator/(const srvector& v, const cinterval& s) {
01036 return sp_vs_div<srvector,cinterval,scivector>(v,s);
01037 }
01038
01039 inline scivector operator/(const scvector& v, const cinterval& s) {
01040 return sp_vs_div<scvector,cinterval,scivector>(v,s);
01041 }
01042
01043 inline scivector operator/(const sivector& v, const cinterval& s) {
01044 return sp_vs_div<sivector,cinterval,scivector>(v,s);
01045 }
01046
01047 inline scivector operator/(const scvector& v, const interval& s) {
01048 return sp_vs_div<scvector,interval,scivector>(v,s);
01049 }
01050
01051 inline scivector operator/(const sivector& v, const complex& s) {
01052 return sp_vs_div<sivector,complex,scivector>(v,s);
01053 }
01054
01055 inline scivector operator*(const real& s, const scivector& v) {
01056 return sp_sv_mult<real,scivector,scivector>(s,v);
01057 }
01058
01059 inline scivector operator*(const complex& s, const scivector& v) {
01060 return sp_sv_mult<complex,scivector,scivector>(s,v);
01061 }
01062
01063 inline scivector operator*(const interval& s, const scivector& v) {
01064 return sp_sv_mult<interval,scivector,scivector>(s,v);
01065 }
01066
01067 inline scivector operator*(const cinterval& s, const srvector& v) {
01068 return sp_sv_mult<cinterval,srvector,scivector>(s,v);
01069 }
01070
01071 inline scivector operator*(const cinterval& s, const sivector& v) {
01072 return sp_sv_mult<cinterval,sivector,scivector>(s,v);
01073 }
01074
01075 inline scivector operator*(const cinterval& s, const scvector& v) {
01076 return sp_sv_mult<cinterval,scvector,scivector>(s,v);
01077 }
01078
01079 inline scivector operator*(const cinterval& s, const scivector& v) {
01080 return sp_sv_mult<cinterval,scivector,scivector>(s,v);
01081 }
01082
01083 inline scivector operator*(const srvector& v, const cinterval& s) {
01084 return sp_sv_mult<cinterval,srvector,scivector>(s,v);
01085 }
01086
01087 inline scivector operator*(const sivector& v, const cinterval& s) {
01088 return sp_sv_mult<cinterval,sivector,scivector>(s,v);
01089 }
01090
01091 inline scivector operator*(const scvector& v, const cinterval& s) {
01092 return sp_sv_mult<cinterval,scvector,scivector>(s,v);
01093 }
01094
01095 inline scivector operator*(const complex& s, const sivector& v) {
01096 return sp_sv_mult<complex,sivector,scivector>(s,v);
01097 }
01098
01099 inline scivector operator*(const interval& s, const scvector& v) {
01100 return sp_sv_mult<interval,scvector,scivector>(s,v);
01101 }
01102
01103 inline civector operator+(const civector& v1, const srvector& v2) {
01104 return fsp_vv_add<civector,srvector,civector>(v1,v2);
01105 }
01106
01107 inline civector operator+(const civector& v1, const scvector& v2) {
01108 return fsp_vv_add<civector,scvector,civector>(v1,v2);
01109 }
01110
01111 inline civector operator+(const civector& v1, const sivector& v2) {
01112 return fsp_vv_add<civector,sivector,civector>(v1,v2);
01113 }
01114
01115 inline civector operator+(const civector& v1, const scivector& v2) {
01116 return fsp_vv_add<civector,scivector,civector>(v1,v2);
01117 }
01118
01119 inline civector operator+(const rvector& v1, const scivector& v2) {
01120 return fsp_vv_add<rvector,scivector,civector>(v1,v2);
01121 }
01122
01123 inline civector operator+(const cvector& v1, const scivector& v2) {
01124 return fsp_vv_add<cvector,scivector,civector>(v1,v2);
01125 }
01126
01127 inline civector operator+(const ivector& v1, const scivector& v2) {
01128 return fsp_vv_add<ivector,scivector,civector>(v1,v2);
01129 }
01130
01131 inline civector operator+(const cvector& v1, const sivector& v2) {
01132 return fsp_vv_add<cvector,sivector,civector>(v1,v2);
01133 }
01134
01135 inline civector operator+(const ivector& v1, const scvector& v2) {
01136 return fsp_vv_add<ivector,scvector,civector>(v1,v2);
01137 }
01138
01139 inline civector operator+(const scivector& v1, const rvector& v2) {
01140 return spf_vv_add<scivector,rvector,civector>(v1,v2);
01141 }
01142
01143 inline civector operator+(const scivector& v1, const cvector& v2) {
01144 return spf_vv_add<scivector,cvector,civector>(v1,v2);
01145 }
01146
01147 inline civector operator+(const scivector& v1, const ivector& v2) {
01148 return spf_vv_add<scivector,ivector,civector>(v1,v2);
01149 }
01150
01151 inline civector operator+(const scivector& v1, const civector& v2) {
01152 return spf_vv_add<scivector,civector,civector>(v1,v2);
01153 }
01154
01155 inline civector operator+(const srvector& v1, const civector& v2) {
01156 return spf_vv_add<srvector,civector,civector>(v1,v2);
01157 }
01158
01159 inline civector operator+(const scvector& v1, const civector& v2) {
01160 return spf_vv_add<scvector,civector,civector>(v1,v2);
01161 }
01162
01163 inline civector operator+(const sivector& v1, const civector& v2) {
01164 return spf_vv_add<sivector,civector,civector>(v1,v2);
01165 }
01166
01167 inline civector operator+(const scvector& v1, const ivector& v2) {
01168 return spf_vv_add<scvector,ivector,civector>(v1,v2);
01169 }
01170
01171 inline civector operator+(const sivector& v1, const cvector& v2) {
01172 return spf_vv_add<sivector,cvector,civector>(v1,v2);
01173 }
01174
01175
01176 inline civector operator+(const civector_slice& v1, const srvector& v2) {
01177 return fsp_vv_add<civector_slice,srvector,civector>(v1,v2);
01178 }
01179
01180 inline civector operator+(const civector_slice& v1, const scvector& v2) {
01181 return fsp_vv_add<civector_slice,scvector,civector>(v1,v2);
01182 }
01183
01184 inline civector operator+(const civector_slice& v1, const sivector& v2) {
01185 return fsp_vv_add<civector_slice,sivector,civector>(v1,v2);
01186 }
01187
01188 inline civector operator+(const civector_slice& v1, const scivector& v2) {
01189 return fsp_vv_add<civector_slice,scivector,civector>(v1,v2);
01190 }
01191
01192 inline civector operator+(const rvector_slice& v1, const scivector& v2) {
01193 return fsp_vv_add<rvector_slice,scivector,civector>(v1,v2);
01194 }
01195
01196 inline civector operator+(const cvector_slice& v1, const scivector& v2) {
01197 return fsp_vv_add<cvector_slice,scivector,civector>(v1,v2);
01198 }
01199
01200 inline civector operator+(const ivector_slice& v1, const scivector& v2) {
01201 return fsp_vv_add<ivector_slice,scivector,civector>(v1,v2);
01202 }
01203
01204 inline civector operator+(const cvector_slice& v1, const sivector& v2) {
01205 return fsp_vv_add<cvector_slice,sivector,civector>(v1,v2);
01206 }
01207
01208 inline civector operator+(const ivector_slice& v1, const scvector& v2) {
01209 return fsp_vv_add<ivector_slice,scvector,civector>(v1,v2);
01210 }
01211
01212 inline civector operator+(const scivector& v1, const rvector_slice& v2) {
01213 return spf_vv_add<scivector,rvector_slice,civector>(v1,v2);
01214 }
01215
01216 inline civector operator+(const scivector& v1, const cvector_slice& v2) {
01217 return spf_vv_add<scivector,cvector_slice,civector>(v1,v2);
01218 }
01219
01220 inline civector operator+(const scivector& v1, const ivector_slice& v2) {
01221 return spf_vv_add<scivector,ivector_slice,civector>(v1,v2);
01222 }
01223
01224 inline civector operator+(const scivector& v1, const civector_slice& v2) {
01225 return spf_vv_add<scivector,civector_slice,civector>(v1,v2);
01226 }
01227
01228 inline civector operator+(const srvector& v1, const civector_slice& v2) {
01229 return spf_vv_add<srvector,civector_slice,civector>(v1,v2);
01230 }
01231
01232 inline civector operator+(const scvector& v1, const civector_slice& v2) {
01233 return spf_vv_add<scvector,civector_slice,civector>(v1,v2);
01234 }
01235
01236 inline civector operator+(const sivector& v1, const civector_slice& v2) {
01237 return spf_vv_add<sivector,civector_slice,civector>(v1,v2);
01238 }
01239
01240 inline civector operator+(const scvector& v1, const ivector_slice& v2) {
01241 return spf_vv_add<scvector,ivector_slice,civector>(v1,v2);
01242 }
01243
01244 inline civector operator+(const sivector& v1, const cvector_slice& v2) {
01245 return spf_vv_add<sivector,cvector_slice,civector>(v1,v2);
01246 }
01247
01248 inline scivector operator+(const scivector& v1, const srvector& v2) {
01249 return spsp_vv_add<scivector,srvector,scivector,cinterval>(v1,v2);
01250 }
01251
01252 inline scivector operator+(const scivector& v1, const scvector& v2) {
01253 return spsp_vv_add<scivector,scvector,scivector,cinterval>(v1,v2);
01254 }
01255
01256 inline scivector operator+(const scivector& v1, const sivector& v2) {
01257 return spsp_vv_add<scivector,sivector,scivector,cinterval>(v1,v2);
01258 }
01259
01260 inline scivector operator+(const scivector& v1, const scivector& v2) {
01261 return spsp_vv_add<scivector,scivector,scivector,cinterval>(v1,v2);
01262 }
01263
01264 inline scivector operator+(const srvector& v1, const scivector& v2) {
01265 return spsp_vv_add<srvector,scivector,scivector,cinterval>(v1,v2);
01266 }
01267
01268 inline scivector operator+(const scvector& v1, const scivector& v2) {
01269 return spsp_vv_add<scvector,scivector,scivector,cinterval>(v1,v2);
01270 }
01271
01272 inline scivector operator+(const sivector& v1, const scivector& v2) {
01273 return spsp_vv_add<sivector,scivector,scivector,cinterval>(v1,v2);
01274 }
01275
01276 inline scivector operator+(const scvector& v1, const sivector& v2) {
01277 return spsp_vv_add<scvector,sivector,scivector,cinterval>(v1,v2);
01278 }
01279
01280 inline scivector operator+(const sivector& v1, const scvector& v2) {
01281 return spsp_vv_add<sivector,scvector,scivector,cinterval>(v1,v2);
01282 }
01283
01284 inline civector operator-(const civector& v1, const srvector& v2) {
01285 return fsp_vv_sub<civector,srvector,civector>(v1,v2);
01286 }
01287
01288 inline civector operator-(const civector& v1, const sivector& v2) {
01289 return fsp_vv_sub<civector,sivector,civector>(v1,v2);
01290 }
01291
01292 inline civector operator-(const civector& v1, const scvector& v2) {
01293 return fsp_vv_sub<civector,scvector,civector>(v1,v2);
01294 }
01295
01296 inline civector operator-(const civector& v1, const scivector& v2) {
01297 return fsp_vv_sub<civector,scivector,civector>(v1,v2);
01298 }
01299
01300 inline civector operator-(const rvector& v1, const scivector& v2) {
01301 return fsp_vv_sub<rvector,scivector,civector>(v1,v2);
01302 }
01303
01304 inline civector operator-(const cvector& v1, const scivector& v2) {
01305 return fsp_vv_sub<cvector,scivector,civector>(v1,v2);
01306 }
01307
01308 inline civector operator-(const ivector& v1, const scivector& v2) {
01309 return fsp_vv_sub<ivector,scivector,civector>(v1,v2);
01310 }
01311
01312 inline civector operator-(const cvector& v1, const sivector& v2) {
01313 return fsp_vv_sub<cvector,sivector,civector>(v1,v2);
01314 }
01315
01316 inline civector operator-(const ivector& v1, const scvector& v2) {
01317 return fsp_vv_sub<ivector,scvector,civector>(v1,v2);
01318 }
01319
01320 inline civector operator-(const scivector& v1, const rvector& v2) {
01321 return spf_vv_sub<scivector,rvector,civector>(v1,v2);
01322 }
01323
01324 inline civector operator-(const scivector& v1, const cvector& v2) {
01325 return spf_vv_sub<scivector,cvector,civector>(v1,v2);
01326 }
01327
01328 inline civector operator-(const scivector& v1, const ivector& v2) {
01329 return spf_vv_sub<scivector,ivector,civector>(v1,v2);
01330 }
01331
01332 inline civector operator-(const scivector& v1, const civector& v2) {
01333 return spf_vv_sub<scivector,civector,civector>(v1,v2);
01334 }
01335
01336 inline civector operator-(const srvector& v1, const civector& v2) {
01337 return spf_vv_sub<srvector,civector,civector>(v1,v2);
01338 }
01339
01340 inline civector operator-(const scvector& v1, const civector& v2) {
01341 return spf_vv_sub<scvector,civector,civector>(v1,v2);
01342 }
01343
01344 inline civector operator-(const sivector& v1, const civector& v2) {
01345 return spf_vv_sub<sivector,civector,civector>(v1,v2);
01346 }
01347
01348 inline civector operator-(const scvector& v1, const ivector& v2) {
01349 return spf_vv_sub<scvector,ivector,civector>(v1,v2);
01350 }
01351
01352 inline civector operator-(const sivector& v1, const cvector& v2) {
01353 return spf_vv_sub<sivector,cvector,civector>(v1,v2);
01354 }
01355
01356 inline civector operator-(const civector_slice& v1, const srvector& v2) {
01357 return fsp_vv_sub<civector_slice,srvector,civector>(v1,v2);
01358 }
01359
01360 inline civector operator-(const civector_slice& v1, const sivector& v2) {
01361 return fsp_vv_sub<civector_slice,sivector,civector>(v1,v2);
01362 }
01363
01364 inline civector operator-(const civector_slice& v1, const scvector& v2) {
01365 return fsp_vv_sub<civector_slice,scvector,civector>(v1,v2);
01366 }
01367
01368 inline civector operator-(const civector_slice& v1, const scivector& v2) {
01369 return fsp_vv_sub<civector_slice,scivector,civector>(v1,v2);
01370 }
01371
01372 inline civector operator-(const rvector_slice& v1, const scivector& v2) {
01373 return fsp_vv_sub<rvector_slice,scivector,civector>(v1,v2);
01374 }
01375
01376 inline civector operator-(const cvector_slice& v1, const scivector& v2) {
01377 return fsp_vv_sub<cvector_slice,scivector,civector>(v1,v2);
01378 }
01379
01380 inline civector operator-(const ivector_slice& v1, const scivector& v2) {
01381 return fsp_vv_sub<ivector_slice,scivector,civector>(v1,v2);
01382 }
01383
01384 inline civector operator-(const cvector_slice& v1, const sivector& v2) {
01385 return fsp_vv_sub<cvector_slice,sivector,civector>(v1,v2);
01386 }
01387
01388 inline civector operator-(const ivector_slice& v1, const scvector& v2) {
01389 return fsp_vv_sub<ivector_slice,scvector,civector>(v1,v2);
01390 }
01391
01392 inline civector operator-(const scivector& v1, const rvector_slice& v2) {
01393 return spf_vv_sub<scivector,rvector_slice,civector>(v1,v2);
01394 }
01395
01396 inline civector operator-(const scivector& v1, const cvector_slice& v2) {
01397 return spf_vv_sub<scivector,cvector_slice,civector>(v1,v2);
01398 }
01399
01400 inline civector operator-(const scivector& v1, const ivector_slice& v2) {
01401 return spf_vv_sub<scivector,ivector_slice,civector>(v1,v2);
01402 }
01403
01404 inline civector operator-(const scivector& v1, const civector_slice& v2) {
01405 return spf_vv_sub<scivector,civector_slice,civector>(v1,v2);
01406 }
01407
01408 inline civector operator-(const srvector& v1, const civector_slice& v2) {
01409 return spf_vv_sub<srvector,civector_slice,civector>(v1,v2);
01410 }
01411
01412 inline civector operator-(const scvector& v1, const civector_slice& v2) {
01413 return spf_vv_sub<scvector,civector_slice,civector>(v1,v2);
01414 }
01415
01416 inline civector operator-(const sivector& v1, const civector_slice& v2) {
01417 return spf_vv_sub<sivector,civector_slice,civector>(v1,v2);
01418 }
01419
01420 inline civector operator-(const scvector& v1, const ivector_slice& v2) {
01421 return spf_vv_sub<scvector,ivector_slice,civector>(v1,v2);
01422 }
01423
01424 inline civector operator-(const sivector& v1, const cvector_slice& v2) {
01425 return spf_vv_sub<sivector,cvector_slice,civector>(v1,v2);
01426 }
01427
01428 inline scivector operator-(const scivector& v1, const srvector& v2) {
01429 return spsp_vv_sub<scivector,srvector,scivector,cinterval>(v1,v2);
01430 }
01431
01432 inline scivector operator-(const scivector& v1, const scvector& v2) {
01433 return spsp_vv_sub<scivector,scvector,scivector,cinterval>(v1,v2);
01434 }
01435
01436 inline scivector operator-(const scivector& v1, const sivector& v2) {
01437 return spsp_vv_sub<scivector,sivector,scivector,cinterval>(v1,v2);
01438 }
01439
01440 inline scivector operator-(const scivector& v1, const scivector& v2) {
01441 return spsp_vv_sub<scivector,scivector,scivector,cinterval>(v1,v2);
01442 }
01443
01444 inline scivector operator-(const srvector& v1, const scivector& v2) {
01445 return spsp_vv_sub<srvector,scivector,scivector,cinterval>(v1,v2);
01446 }
01447
01448 inline scivector operator-(const scvector& v1, const scivector& v2) {
01449 return spsp_vv_sub<scvector,scivector,scivector,cinterval>(v1,v2);
01450 }
01451
01452 inline scivector operator-(const sivector& v1, const scivector& v2) {
01453 return spsp_vv_sub<sivector,scivector,scivector,cinterval>(v1,v2);
01454 }
01455
01456 inline scivector operator-(const scvector& v1, const sivector& v2) {
01457 return spsp_vv_sub<scvector,sivector,scivector,cinterval>(v1,v2);
01458 }
01459
01460 inline scivector operator-(const sivector& v1, const scvector& v2) {
01461 return spsp_vv_sub<sivector,scvector,scivector,cinterval>(v1,v2);
01462 }
01463
01464 inline civector operator|(const civector& v1, const srvector& v2) {
01465 return fsp_vv_hull<civector,srvector,civector>(v1,v2);
01466 }
01467
01468 inline civector operator|(const civector& v1, const scvector& v2) {
01469 return fsp_vv_hull<civector,scvector,civector>(v1,v2);
01470 }
01471
01472 inline civector operator|(const civector& v1, const sivector& v2) {
01473 return fsp_vv_hull<civector,sivector,civector>(v1,v2);
01474 }
01475
01476 inline civector operator|(const civector& v1, const scivector& v2) {
01477 return fsp_vv_hull<civector,scivector,civector>(v1,v2);
01478 }
01479
01480 inline civector operator|(const rvector& v1, const scivector& v2) {
01481 return fsp_vv_hull<rvector,scivector,civector>(v1,v2);
01482 }
01483
01484 inline civector operator|(const cvector& v1, const scivector& v2) {
01485 return fsp_vv_hull<cvector,scivector,civector>(v1,v2);
01486 }
01487
01488 inline civector operator|(const ivector& v1, const scivector& v2) {
01489 return fsp_vv_hull<ivector,scivector,civector>(v1,v2);
01490 }
01491
01492 inline civector operator|(const cvector& v1, const sivector& v2) {
01493 return fsp_vv_hull<cvector,sivector,civector>(v1,v2);
01494 }
01495
01496 inline civector operator|(const ivector& v1, const scvector& v2) {
01497 return fsp_vv_hull<ivector,scvector,civector>(v1,v2);
01498 }
01499
01500 inline civector operator|(const scivector& v1, const rvector& v2) {
01501 return spf_vv_hull<scivector,rvector,civector>(v1,v2);
01502 }
01503
01504 inline civector operator|(const scivector& v1, const cvector& v2) {
01505 return spf_vv_hull<scivector,cvector,civector>(v1,v2);
01506 }
01507
01508 inline civector operator|(const scivector& v1, const ivector& v2) {
01509 return spf_vv_hull<scivector,ivector,civector>(v1,v2);
01510 }
01511
01512 inline civector operator|(const scivector& v1, const civector& v2) {
01513 return spf_vv_hull<scivector,civector,civector>(v1,v2);
01514 }
01515
01516 inline civector operator|(const srvector& v1, const civector& v2) {
01517 return spf_vv_hull<srvector,civector,civector>(v1,v2);
01518 }
01519
01520 inline civector operator|(const scvector& v1, const civector& v2) {
01521 return spf_vv_hull<scvector,civector,civector>(v1,v2);
01522 }
01523
01524 inline civector operator|(const sivector& v1, const civector& v2) {
01525 return spf_vv_hull<sivector,civector,civector>(v1,v2);
01526 }
01527
01528 inline civector operator|(const scvector& v1, const ivector& v2) {
01529 return spf_vv_hull<scvector,ivector,civector>(v1,v2);
01530 }
01531
01532 inline civector operator|(const sivector& v1, const cvector& v2) {
01533 return spf_vv_hull<sivector,cvector,civector>(v1,v2);
01534 }
01535
01536 inline civector operator|(const civector_slice& v1, const srvector& v2) {
01537 return fsp_vv_hull<civector_slice,srvector,civector>(v1,v2);
01538 }
01539
01540 inline civector operator|(const civector_slice& v1, const scvector& v2) {
01541 return fsp_vv_hull<civector_slice,scvector,civector>(v1,v2);
01542 }
01543
01544 inline civector operator|(const civector_slice& v1, const sivector& v2) {
01545 return fsp_vv_hull<civector_slice,sivector,civector>(v1,v2);
01546 }
01547
01548 inline civector operator|(const civector_slice& v1, const scivector& v2) {
01549 return fsp_vv_hull<civector_slice,scivector,civector>(v1,v2);
01550 }
01551
01552 inline civector operator|(const rvector_slice& v1, const scivector& v2) {
01553 return fsp_vv_hull<rvector_slice,scivector,civector>(v1,v2);
01554 }
01555
01556 inline civector operator|(const cvector_slice& v1, const scivector& v2) {
01557 return fsp_vv_hull<cvector_slice,scivector,civector>(v1,v2);
01558 }
01559
01560 inline civector operator|(const ivector_slice& v1, const scivector& v2) {
01561 return fsp_vv_hull<ivector_slice,scivector,civector>(v1,v2);
01562 }
01563
01564 inline civector operator|(const cvector_slice& v1, const sivector& v2) {
01565 return fsp_vv_hull<cvector_slice,sivector,civector>(v1,v2);
01566 }
01567
01568 inline civector operator|(const ivector_slice& v1, const scvector& v2) {
01569 return fsp_vv_hull<ivector_slice,scvector,civector>(v1,v2);
01570 }
01571
01572 inline civector operator|(const scivector& v1, const rvector_slice& v2) {
01573 return spf_vv_hull<scivector,rvector_slice,civector>(v1,v2);
01574 }
01575
01576 inline civector operator|(const scivector& v1, const cvector_slice& v2) {
01577 return spf_vv_hull<scivector,cvector_slice,civector>(v1,v2);
01578 }
01579
01580 inline civector operator|(const scivector& v1, const ivector_slice& v2) {
01581 return spf_vv_hull<scivector,ivector_slice,civector>(v1,v2);
01582 }
01583
01584 inline civector operator|(const scivector& v1, const civector_slice& v2) {
01585 return spf_vv_hull<scivector,civector_slice,civector>(v1,v2);
01586 }
01587
01588 inline civector operator|(const srvector& v1, const civector_slice& v2) {
01589 return spf_vv_hull<srvector,civector_slice,civector>(v1,v2);
01590 }
01591
01592 inline civector operator|(const scvector& v1, const civector_slice& v2) {
01593 return spf_vv_hull<scvector,civector_slice,civector>(v1,v2);
01594 }
01595
01596 inline civector operator|(const sivector& v1, const civector_slice& v2) {
01597 return spf_vv_hull<sivector,civector_slice,civector>(v1,v2);
01598 }
01599
01600 inline civector operator|(const scvector& v1, const ivector_slice& v2) {
01601 return spf_vv_hull<scvector,ivector_slice,civector>(v1,v2);
01602 }
01603
01604 inline civector operator|(const sivector& v1, const cvector_slice& v2) {
01605 return spf_vv_hull<sivector,cvector_slice,civector>(v1,v2);
01606 }
01607
01608 inline scivector operator|(const scivector& v1, const srvector& v2) {
01609 return spsp_vv_hull<scivector,srvector,scivector,cinterval>(v1,v2);
01610 }
01611
01612 inline scivector operator|(const scivector& v1, const scvector& v2) {
01613 return spsp_vv_hull<scivector,scvector,scivector,cinterval>(v1,v2);
01614 }
01615
01616 inline scivector operator|(const scivector& v1, const sivector& v2) {
01617 return spsp_vv_hull<scivector,sivector,scivector,cinterval>(v1,v2);
01618 }
01619
01620 inline scivector operator|(const scivector& v1, const scivector& v2) {
01621 return spsp_vv_hull<scivector,scivector,scivector,cinterval>(v1,v2);
01622 }
01623
01624 inline scivector operator|(const srvector& v1, const scivector& v2) {
01625 return spsp_vv_hull<srvector,scivector,scivector,cinterval>(v1,v2);
01626 }
01627
01628 inline scivector operator|(const scvector& v1, const scivector& v2) {
01629 return spsp_vv_hull<scvector,scivector,scivector,cinterval>(v1,v2);
01630 }
01631
01632 inline scivector operator|(const sivector& v1, const scivector& v2) {
01633 return spsp_vv_hull<sivector,scivector,scivector,cinterval>(v1,v2);
01634 }
01635
01636 inline scivector operator|(const scvector& v1, const sivector& v2) {
01637 return spsp_vv_hull<scvector,sivector,scivector,cinterval>(v1,v2);
01638 }
01639
01640 inline scivector operator|(const sivector& v1, const scvector& v2) {
01641 return spsp_vv_hull<sivector,scvector,scivector,cinterval>(v1,v2);
01642 }
01643
01644 inline civector operator|(const cvector& v1, const srvector& v2) {
01645 return fsp_vv_hull<cvector,srvector,civector>(v1,v2);
01646 }
01647
01648 inline civector operator|(const rvector& v1, const scvector& v2) {
01649 return fsp_vv_hull<rvector,scvector,civector>(v1,v2);
01650 }
01651
01652 inline civector operator|(const cvector& v1, const scvector& v2) {
01653 return fsp_vv_hull<cvector,scvector,civector>(v1,v2);
01654 }
01655
01656 inline civector operator|(const scvector& v1, const rvector& v2) {
01657 return spf_vv_hull<scvector,rvector,civector>(v1,v2);
01658 }
01659
01660 inline civector operator|(const srvector& v1, const cvector& v2) {
01661 return spf_vv_hull<srvector,cvector,civector>(v1,v2);
01662 }
01663
01664 inline civector operator|(const scvector& v1, const cvector& v2) {
01665 return spf_vv_hull<scvector,cvector,civector>(v1,v2);
01666 }
01667
01668 inline civector operator|(const cvector_slice& v1, const srvector& v2) {
01669 return fsp_vv_hull<cvector_slice,srvector,civector>(v1,v2);
01670 }
01671
01672 inline civector operator|(const rvector_slice& v1, const scvector& v2) {
01673 return fsp_vv_hull<rvector_slice,scvector,civector>(v1,v2);
01674 }
01675
01676 inline civector operator|(const cvector_slice& v1, const scvector& v2) {
01677 return fsp_vv_hull<cvector_slice,scvector,civector>(v1,v2);
01678 }
01679
01680 inline civector operator|(const scvector& v1, const rvector_slice& v2) {
01681 return spf_vv_hull<scvector,rvector_slice,civector>(v1,v2);
01682 }
01683
01684 inline civector operator|(const srvector& v1, const cvector_slice& v2) {
01685 return spf_vv_hull<srvector,cvector_slice,civector>(v1,v2);
01686 }
01687
01688 inline civector operator|(const scvector& v1, const cvector_slice& v2) {
01689 return spf_vv_hull<scvector,cvector_slice,civector>(v1,v2);
01690 }
01691
01692 inline scivector operator|(const scvector& v1, const srvector& v2) {
01693 return spsp_vv_hull<scvector,srvector,scivector,cinterval>(v1,v2);
01694 }
01695
01696 inline scivector operator|(const srvector& v1, const scvector& v2) {
01697 return spsp_vv_hull<srvector,scvector,scivector,cinterval>(v1,v2);
01698 }
01699
01700 inline scivector operator|(const scvector& v1, const scvector& v2) {
01701 return spsp_vv_hull<scvector,scvector,scivector,cinterval>(v1,v2);
01702 }
01703
01704 inline civector operator|(const cvector& v1, const srvector_slice& v2) {
01705 return fsl_vv_hull<cvector,srvector_slice,civector>(v1,v2);
01706 }
01707
01708 inline civector operator|(const rvector& v1, const scvector_slice& v2) {
01709 return fsl_vv_hull<rvector,scvector_slice,civector>(v1,v2);
01710 }
01711
01712 inline civector operator|(const cvector& v1, const scvector_slice& v2) {
01713 return fsl_vv_hull<cvector,scvector_slice,civector>(v1,v2);
01714 }
01715
01716 inline civector operator|(const scvector_slice& v1, const rvector& v2) {
01717 return slf_vv_hull<scvector_slice,rvector,civector>(v1,v2);
01718 }
01719
01720 inline civector operator|(const srvector_slice& v1, const cvector& v2) {
01721 return slf_vv_hull<srvector_slice,cvector,civector>(v1,v2);
01722 }
01723
01724 inline civector operator|(const scvector_slice& v1, const cvector& v2) {
01725 return slf_vv_hull<scvector_slice,cvector,civector>(v1,v2);
01726 }
01727
01728 inline civector operator|(const cvector_slice& v1, const srvector_slice& v2) {
01729 return fsl_vv_hull<cvector_slice,srvector_slice,civector>(v1,v2);
01730 }
01731
01732 inline civector operator|(const rvector_slice& v1, const scvector_slice& v2) {
01733 return fsl_vv_hull<rvector_slice,scvector_slice,civector>(v1,v2);
01734 }
01735
01736 inline civector operator|(const cvector_slice& v1, const scvector_slice& v2) {
01737 return fsl_vv_hull<cvector_slice,scvector_slice,civector>(v1,v2);
01738 }
01739
01740 inline civector operator|(const scvector_slice& v1, const rvector_slice& v2) {
01741 return slf_vv_hull<scvector_slice,rvector_slice,civector>(v1,v2);
01742 }
01743
01744 inline civector operator|(const srvector_slice& v1, const cvector_slice& v2) {
01745 return slf_vv_hull<srvector_slice,cvector_slice,civector>(v1,v2);
01746 }
01747
01748 inline civector operator|(const scvector_slice& v1, const cvector_slice& v2) {
01749 return slf_vv_hull<scvector_slice,cvector_slice,civector>(v1,v2);
01750 }
01751
01752 inline scivector operator|(const scvector_slice& v1, const srvector_slice& v2) {
01753 return slsl_vv_hull<scvector_slice,srvector_slice,scivector,cinterval>(v1,v2);
01754 }
01755
01756 inline scivector operator|(const srvector_slice& v1, const scvector_slice& v2) {
01757 return slsl_vv_hull<srvector_slice,scvector_slice,scivector,cinterval>(v1,v2);
01758 }
01759
01760 inline scivector operator|(const scvector_slice& v1, const scvector_slice& v2) {
01761 return slsl_vv_hull<scvector_slice,scvector_slice,scivector,cinterval>(v1,v2);
01762 }
01763
01764 inline scivector operator|(const scvector& v1, const srvector_slice& v2) {
01765 return spsl_vv_hull<scvector,srvector_slice,scivector,cinterval>(v1,v2);
01766 }
01767
01768 inline scivector operator|(const srvector& v1, const scvector_slice& v2) {
01769 return spsl_vv_hull<srvector,scvector_slice,scivector,cinterval>(v1,v2);
01770 }
01771
01772 inline scivector operator|(const scvector& v1, const scvector_slice& v2) {
01773 return spsl_vv_hull<scvector,scvector_slice,scivector,cinterval>(v1,v2);
01774 }
01775
01776 inline scivector operator|(const scvector_slice& v1, const srvector& v2) {
01777 return slsp_vv_hull<scvector_slice,srvector,scivector,cinterval>(v1,v2);
01778 }
01779
01780 inline scivector operator|(const srvector_slice& v1, const scvector& v2) {
01781 return slsp_vv_hull<srvector_slice,scvector,scivector,cinterval>(v1,v2);
01782 }
01783
01784 inline scivector operator|(const scvector_slice& v1, const scvector& v2) {
01785 return slsp_vv_hull<scvector_slice,scvector,scivector,cinterval>(v1,v2);
01786 }
01787
01788 inline civector operator&(const civector& v1, const sivector& v2) {
01789 return fsp_vv_intersect<civector,sivector,civector>(v1,v2);
01790 }
01791
01792 inline civector operator&(const civector& v1, const scivector& v2) {
01793 return fsp_vv_intersect<civector,scivector,civector>(v1,v2);
01794 }
01795
01796 inline civector operator&(const ivector& v1, const scivector& v2) {
01797 return fsp_vv_intersect<ivector,scivector,civector>(v1,v2);
01798 }
01799
01800 inline civector operator&(const scivector& v1, const ivector& v2) {
01801 return spf_vv_intersect<scivector,ivector,civector>(v1,v2);
01802 }
01803
01804 inline civector operator&(const scivector& v1, const civector& v2) {
01805 return spf_vv_intersect<scivector,civector,civector>(v1,v2);
01806 }
01807
01808 inline civector operator&(const sivector& v1, const civector& v2) {
01809 return spf_vv_intersect<sivector,civector,civector>(v1,v2);
01810 }
01811
01812 inline civector operator&(const civector_slice& v1, const sivector& v2) {
01813 return fsp_vv_intersect<civector_slice,sivector,civector>(v1,v2);
01814 }
01815
01816 inline civector operator&(const civector_slice& v1, const scivector& v2) {
01817 return fsp_vv_intersect<civector_slice,scivector,civector>(v1,v2);
01818 }
01819
01820 inline civector operator&(const ivector_slice& v1, const scivector& v2) {
01821 return fsp_vv_intersect<ivector_slice,scivector,civector>(v1,v2);
01822 }
01823
01824 inline civector operator&(const scivector& v1, const ivector_slice& v2) {
01825 return spf_vv_intersect<scivector,ivector_slice,civector>(v1,v2);
01826 }
01827
01828 inline civector operator&(const scivector& v1, const civector_slice& v2) {
01829 return spf_vv_intersect<scivector,civector_slice,civector>(v1,v2);
01830 }
01831
01832 inline civector operator&(const sivector& v1, const civector_slice& v2) {
01833 return spf_vv_intersect<sivector,civector_slice,civector>(v1,v2);
01834 }
01835
01836 inline scivector operator&(const scivector& v1, const sivector& v2) {
01837 return spsp_vv_intersect<scivector,sivector,scivector,cinterval>(v1,v2);
01838 }
01839
01840 inline scivector operator&(const scivector& v1, const scivector& v2) {
01841 return spsp_vv_intersect<scivector,scivector,scivector,cinterval>(v1,v2);
01842 }
01843
01844 inline scivector operator&(const sivector& v1, const scivector& v2) {
01845 return spsp_vv_intersect<sivector,scivector,scivector,cinterval>(v1,v2);
01846 }
01847
01848 inline civector& civector::operator+=(const srvector& v2) {
01849 return fsp_vv_addassign(*this,v2);
01850 }
01851
01852 inline civector& civector::operator+=(const scvector& v2) {
01853 return fsp_vv_addassign(*this,v2);
01854 }
01855
01856 inline civector& civector::operator+=(const sivector& v2) {
01857 return fsp_vv_addassign(*this,v2);
01858 }
01859
01860 inline civector& civector::operator+=(const scivector& v2) {
01861 return fsp_vv_addassign(*this,v2);
01862 }
01863
01864 inline civector_slice& civector_slice::operator+=(const srvector& v2) {
01865 return fsp_vv_addassign(*this,v2);
01866 }
01867
01868 inline civector_slice& civector_slice::operator+=(const scvector& v2) {
01869 return fsp_vv_addassign(*this,v2);
01870 }
01871
01872 inline civector_slice& civector_slice::operator+=(const sivector& v2) {
01873 return fsp_vv_addassign(*this,v2);
01874 }
01875
01876 inline civector_slice& civector_slice::operator+=(const scivector& v2) {
01877 return fsp_vv_addassign(*this,v2);
01878 }
01879
01880 inline civector& civector::operator-=(const srvector& v2) {
01881 return fsp_vv_subassign(*this,v2);
01882 }
01883
01884 inline civector& civector::operator-=(const scvector& v2) {
01885 return fsp_vv_subassign(*this,v2);
01886 }
01887
01888 inline civector& civector::operator-=(const sivector& v2) {
01889 return fsp_vv_subassign(*this,v2);
01890 }
01891
01892 inline civector& civector::operator-=(const scivector& v2) {
01893 return fsp_vv_subassign(*this,v2);
01894 }
01895
01896 inline civector_slice& civector_slice::operator-=(const srvector& v2) {
01897 return fsp_vv_subassign(*this,v2);
01898 }
01899
01900 inline civector_slice& civector_slice::operator-=(const scvector& v2) {
01901 return fsp_vv_subassign(*this,v2);
01902 }
01903
01904 inline civector_slice& civector_slice::operator-=(const sivector& v2) {
01905 return fsp_vv_subassign(*this,v2);
01906 }
01907
01908 inline civector_slice& civector_slice::operator-=(const scivector& v2) {
01909 return fsp_vv_subassign(*this,v2);
01910 }
01911
01912 inline civector& civector::operator|=(const srvector& v2) {
01913 return fsp_vv_hullassign(*this,v2);
01914 }
01915
01916 inline civector& civector::operator|=(const scvector& v2) {
01917 return fsp_vv_hullassign(*this,v2);
01918 }
01919
01920 inline civector& civector::operator|=(const sivector& v2) {
01921 return fsp_vv_hullassign(*this,v2);
01922 }
01923
01924 inline civector& civector::operator|=(const scivector& v2) {
01925 return fsp_vv_hullassign(*this,v2);
01926 }
01927
01928 inline civector_slice& civector_slice::operator|=(const srvector& v2) {
01929 return fsp_vv_hullassign(*this,v2);
01930 }
01931
01932 inline civector_slice& civector_slice::operator|=(const scvector& v2) {
01933 return fsp_vv_hullassign(*this,v2);
01934 }
01935
01936 inline civector_slice& civector_slice::operator|=(const sivector& v2) {
01937 return fsp_vv_hullassign(*this,v2);
01938 }
01939
01940 inline civector_slice& civector_slice::operator|=(const scivector& v2) {
01941 return fsp_vv_hullassign(*this,v2);
01942 }
01943
01944 inline civector& civector::operator&=(const sivector& v2) {
01945 return fsp_vv_intersectassign(*this,v2);
01946 }
01947
01948 inline civector& civector::operator&=(const scivector& v2) {
01949 return fsp_vv_intersectassign(*this,v2);
01950 }
01951
01952 inline civector_slice& civector_slice::operator&=(const sivector& v2) {
01953 return fsp_vv_intersectassign(*this,v2);
01954 }
01955
01956 inline civector_slice& civector_slice::operator&=(const scivector& v2) {
01957 return fsp_vv_intersectassign(*this,v2);
01958 }
01959
01960 inline bool operator==(const scivector& v1, const scivector& v2) {
01961 return spsp_vv_comp(v1,v2);
01962 }
01963
01964 inline bool operator==(const scivector& v1, const srvector& v2) {
01965 return spsp_vv_comp(v1,v2);
01966 }
01967
01968 inline bool operator==(const scivector& v1, const sivector& v2) {
01969 return spsp_vv_comp(v1,v2);
01970 }
01971
01972 inline bool operator==(const scivector& v1, const scvector& v2) {
01973 return spsp_vv_comp(v1,v2);
01974 }
01975
01976 inline bool operator==(const srvector& v1, const scivector& v2) {
01977 return spsp_vv_comp(v1,v2);
01978 }
01979
01980 inline bool operator==(const scvector& v1, const scivector& v2) {
01981 return spsp_vv_comp(v1,v2);
01982 }
01983
01984 inline bool operator==(const sivector& v1, const scivector& v2) {
01985 return spsp_vv_comp(v1,v2);
01986 }
01987
01988 inline bool operator==(const scivector& v1, const rvector& v2) {
01989 return spf_vv_comp(v1,v2);
01990 }
01991
01992 inline bool operator==(const scivector& v1, const cvector& v2) {
01993 return spf_vv_comp(v1,v2);
01994 }
01995
01996 inline bool operator==(const scivector& v1, const ivector& v2) {
01997 return spf_vv_comp(v1,v2);
01998 }
01999
02000 inline bool operator==(const scivector& v1, const civector& v2) {
02001 return spf_vv_comp(v1,v2);
02002 }
02003
02004 inline bool operator==(const srvector& v1, const civector& v2) {
02005 return spf_vv_comp(v1,v2);
02006 }
02007
02008 inline bool operator==(const scvector& v1, const civector& v2) {
02009 return spf_vv_comp(v1,v2);
02010 }
02011
02012 inline bool operator==(const sivector& v1, const civector& v2) {
02013 return spf_vv_comp(v1,v2);
02014 }
02015
02016 inline bool operator==(const civector& v1, const srvector& v2) {
02017 return fsp_vv_comp(v1,v2);
02018 }
02019
02020 inline bool operator==(const civector& v1, const scvector& v2) {
02021 return fsp_vv_comp(v1,v2);
02022 }
02023
02024 inline bool operator==(const civector& v1, const sivector& v2) {
02025 return fsp_vv_comp(v1,v2);
02026 }
02027
02028 inline bool operator==(const civector& v1, const scivector& v2) {
02029 return fsp_vv_comp(v1,v2);
02030 }
02031
02032 inline bool operator==(const rvector& v1, const scivector& v2) {
02033 return fsp_vv_comp(v1,v2);
02034 }
02035
02036 inline bool operator==(const cvector& v1, const scivector& v2) {
02037 return fsp_vv_comp(v1,v2);
02038 }
02039
02040 inline bool operator==(const ivector& v1, const scivector& v2) {
02041 return fsp_vv_comp(v1,v2);
02042 }
02043
02044 inline bool operator==(const scivector& v1, const rvector_slice& v2) {
02045 return spf_vv_comp(v1,v2);
02046 }
02047
02048 inline bool operator==(const scivector& v1, const ivector_slice& v2) {
02049 return spf_vv_comp(v1,v2);
02050 }
02051
02052 inline bool operator==(const scivector& v1, const cvector_slice& v2) {
02053 return spf_vv_comp(v1,v2);
02054 }
02055
02056 inline bool operator==(const srvector& v1, const civector_slice& v2) {
02057 return spf_vv_comp(v1,v2);
02058 }
02059
02060 inline bool operator==(const scvector& v1, const civector_slice& v2) {
02061 return spf_vv_comp(v1,v2);
02062 }
02063
02064 inline bool operator==(const sivector& v1, const civector_slice& v2) {
02065 return spf_vv_comp(v1,v2);
02066 }
02067
02068 inline bool operator==(const scivector& v1, const civector_slice& v2) {
02069 return spf_vv_comp(v1,v2);
02070 }
02071
02072 inline bool operator==(const civector_slice& v1, const srvector& v2) {
02073 return fsp_vv_comp(v1,v2);
02074 }
02075
02076 inline bool operator==(const civector_slice& v1, const sivector& v2) {
02077 return fsp_vv_comp(v1,v2);
02078 }
02079
02080 inline bool operator==(const civector_slice& v1, const scvector& v2) {
02081 return fsp_vv_comp(v1,v2);
02082 }
02083
02084 inline bool operator==(const rvector_slice& v1, const scivector& v2) {
02085 return fsp_vv_comp(v1,v2);
02086 }
02087
02088 inline bool operator==(const ivector_slice& v1, const scivector& v2) {
02089 return fsp_vv_comp(v1,v2);
02090 }
02091
02092 inline bool operator==(const cvector_slice& v1, const scivector& v2) {
02093 return fsp_vv_comp(v1,v2);
02094 }
02095
02096 inline bool operator==(const civector_slice& v1, const scivector& v2) {
02097 return fsp_vv_comp(v1,v2);
02098 }
02099
02100 inline bool operator!=(const scivector& v1, const scivector& v2) {
02101 return !spsp_vv_comp(v1,v2);
02102 }
02103
02104 inline bool operator!=(const scivector& v1, const srvector& v2) {
02105 return !spsp_vv_comp(v1,v2);
02106 }
02107
02108 inline bool operator!=(const scivector& v1, const sivector& v2) {
02109 return !spsp_vv_comp(v1,v2);
02110 }
02111
02112 inline bool operator!=(const scivector& v1, const scvector& v2) {
02113 return !spsp_vv_comp(v1,v2);
02114 }
02115
02116 inline bool operator!=(const srvector& v1, const scivector& v2) {
02117 return !spsp_vv_comp(v1,v2);
02118 }
02119
02120 inline bool operator!=(const scvector& v1, const scivector& v2) {
02121 return !spsp_vv_comp(v1,v2);
02122 }
02123
02124 inline bool operator!=(const sivector& v1, const scivector& v2) {
02125 return !spsp_vv_comp(v1,v2);
02126 }
02127
02128 inline bool operator!=(const scivector& v1, const rvector& v2) {
02129 return !spf_vv_comp(v1,v2);
02130 }
02131
02132 inline bool operator!=(const scivector& v1, const cvector& v2) {
02133 return !spf_vv_comp(v1,v2);
02134 }
02135
02136 inline bool operator!=(const scivector& v1, const ivector& v2) {
02137 return !spf_vv_comp(v1,v2);
02138 }
02139
02140 inline bool operator!=(const scivector& v1, const civector& v2) {
02141 return !spf_vv_comp(v1,v2);
02142 }
02143
02144 inline bool operator!=(const srvector& v1, const civector& v2) {
02145 return !spf_vv_comp(v1,v2);
02146 }
02147
02148 inline bool operator!=(const scvector& v1, const civector& v2) {
02149 return !spf_vv_comp(v1,v2);
02150 }
02151
02152 inline bool operator!=(const sivector& v1, const civector& v2) {
02153 return !spf_vv_comp(v1,v2);
02154 }
02155
02156 inline bool operator!=(const civector& v1, const srvector& v2) {
02157 return !fsp_vv_comp(v1,v2);
02158 }
02159
02160 inline bool operator!=(const civector& v1, const sivector& v2) {
02161 return !fsp_vv_comp(v1,v2);
02162 }
02163
02164 inline bool operator!=(const civector& v1, const scivector& v2) {
02165 return !fsp_vv_comp(v1,v2);
02166 }
02167
02168 inline bool operator!=(const rvector& v1, const scivector& v2) {
02169 return !fsp_vv_comp(v1,v2);
02170 }
02171
02172 inline bool operator!=(const cvector& v1, const scivector& v2) {
02173 return !fsp_vv_comp(v1,v2);
02174 }
02175
02176 inline bool operator!=(const ivector& v1, const scivector& v2) {
02177 return !fsp_vv_comp(v1,v2);
02178 }
02179
02180 inline bool operator!=(const scivector& v1, const rvector_slice& v2) {
02181 return !spf_vv_comp(v1,v2);
02182 }
02183
02184 inline bool operator!=(const scivector& v1, const ivector_slice& v2) {
02185 return !spf_vv_comp(v1,v2);
02186 }
02187
02188 inline bool operator!=(const scivector& v1, const cvector_slice& v2) {
02189 return !spf_vv_comp(v1,v2);
02190 }
02191
02192 inline bool operator!=(const srvector& v1, const civector_slice& v2) {
02193 return !spf_vv_comp(v1,v2);
02194 }
02195
02196 inline bool operator!=(const scvector& v1, const civector_slice& v2) {
02197 return !spf_vv_comp(v1,v2);
02198 }
02199
02200 inline bool operator!=(const sivector& v1, const civector_slice& v2) {
02201 return !spf_vv_comp(v1,v2);
02202 }
02203
02204 inline bool operator!=(const scivector& v1, const civector_slice& v2) {
02205 return !spf_vv_comp(v1,v2);
02206 }
02207
02208 inline bool operator!=(const civector_slice& v1, const srvector& v2) {
02209 return !fsp_vv_comp(v1,v2);
02210 }
02211
02212 inline bool operator!=(const civector_slice& v1, const sivector& v2) {
02213 return !fsp_vv_comp(v1,v2);
02214 }
02215
02216 inline bool operator!=(const civector_slice& v1, const scvector& v2) {
02217 return !fsp_vv_comp(v1,v2);
02218 }
02219
02220 inline bool operator!=(const rvector_slice& v1, const scivector& v2) {
02221 return !fsp_vv_comp(v1,v2);
02222 }
02223
02224 inline bool operator!=(const ivector_slice& v1, const scivector& v2) {
02225 return !fsp_vv_comp(v1,v2);
02226 }
02227
02228 inline bool operator!=(const cvector_slice& v1, const scivector& v2) {
02229 return !fsp_vv_comp(v1,v2);
02230 }
02231
02232 inline bool operator!=(const civector_slice& v1, const scivector& v2) {
02233 return !fsp_vv_comp(v1,v2);
02234 }
02235
02236 inline bool operator<(const scivector& v1, const scivector& v2) {
02237 return spsp_vv_less<scivector,scivector,cinterval>(v1,v2);
02238 }
02239
02240 inline bool operator<(const scivector& v1, const sivector& v2) {
02241 return spsp_vv_less<scivector,sivector,cinterval>(v1,v2);
02242 }
02243
02244 inline bool operator<(const srvector& v1, const scivector& v2) {
02245 return spsp_vv_less<srvector,scivector,cinterval>(v1,v2);
02246 }
02247
02248 inline bool operator<(const scvector& v1, const scivector& v2) {
02249 return spsp_vv_less<scvector,scivector,cinterval>(v1,v2);
02250 }
02251
02252 inline bool operator<(const sivector& v1, const scivector& v2) {
02253 return spsp_vv_less<sivector,scivector,cinterval>(v1,v2);
02254 }
02255
02256 inline bool operator<(const scivector& v1, const ivector& v2) {
02257 return spf_vv_less<scivector,ivector,cinterval>(v1,v2);
02258 }
02259
02260 inline bool operator<(const scivector& v1, const civector& v2) {
02261 return spf_vv_less<scivector,civector,cinterval>(v1,v2);
02262 }
02263
02264 inline bool operator<(const srvector& v1, const civector& v2) {
02265 return spf_vv_less<srvector,civector,cinterval>(v1,v2);
02266 }
02267
02268 inline bool operator<(const scvector& v1, const civector& v2) {
02269 return spf_vv_less<scvector,civector,cinterval>(v1,v2);
02270 }
02271
02272 inline bool operator<(const sivector& v1, const civector& v2) {
02273 return spf_vv_less<sivector,civector,cinterval>(v1,v2);
02274 }
02275
02276 inline bool operator<(const civector& v1, const sivector& v2) {
02277 return fsp_vv_less<civector,sivector,cinterval>(v1,v2);
02278 }
02279
02280 inline bool operator<(const civector& v1, const scivector& v2) {
02281 return fsp_vv_less<civector,scivector,cinterval>(v1,v2);
02282 }
02283
02284 inline bool operator<(const rvector& v1, const scivector& v2) {
02285 return fsp_vv_less<rvector,scivector,cinterval>(v1,v2);
02286 }
02287
02288 inline bool operator<(const cvector& v1, const scivector& v2) {
02289 return fsp_vv_less<cvector,scivector,cinterval>(v1,v2);
02290 }
02291
02292 inline bool operator<(const ivector& v1, const scivector& v2) {
02293 return fsp_vv_less<ivector,scivector,cinterval>(v1,v2);
02294 }
02295
02296 inline bool operator<(const scivector& v1, const ivector_slice& v2) {
02297 return spf_vv_less<scivector,ivector_slice,cinterval>(v1,v2);
02298 }
02299
02300 inline bool operator<(const srvector& v1, const civector_slice& v2) {
02301 return spf_vv_less<srvector,civector_slice,cinterval>(v1,v2);
02302 }
02303
02304 inline bool operator<(const scvector& v1, const civector_slice& v2) {
02305 return spf_vv_less<scvector,civector_slice,cinterval>(v1,v2);
02306 }
02307
02308 inline bool operator<(const sivector& v1, const civector_slice& v2) {
02309 return spf_vv_less<sivector,civector_slice,cinterval>(v1,v2);
02310 }
02311
02312 inline bool operator<(const scivector& v1, const civector_slice& v2) {
02313 return spf_vv_less<scivector,civector_slice,cinterval>(v1,v2);
02314 }
02315
02316 inline bool operator<(const civector_slice& v1, const sivector& v2) {
02317 return fsp_vv_less<civector_slice,sivector,cinterval>(v1,v2);
02318 }
02319
02320 inline bool operator<(const rvector_slice& v1, const scivector& v2) {
02321 return fsp_vv_less<rvector_slice,scivector,cinterval>(v1,v2);
02322 }
02323
02324 inline bool operator<(const ivector_slice& v1, const scivector& v2) {
02325 return fsp_vv_less<ivector_slice,scivector,cinterval>(v1,v2);
02326 }
02327
02328 inline bool operator<(const cvector_slice& v1, const scivector& v2) {
02329 return fsp_vv_less<cvector_slice,scivector,cinterval>(v1,v2);
02330 }
02331
02332 inline bool operator<(const civector_slice& v1, const scivector& v2) {
02333 return fsp_vv_less<civector_slice,scivector,cinterval>(v1,v2);
02334 }
02335
02336 inline bool operator<=(const scivector& v1, const scivector& v2) {
02337 return spsp_vv_leq<scivector,scivector,cinterval>(v1,v2);
02338 }
02339
02340 inline bool operator<=(const scivector& v1, const sivector& v2) {
02341 return spsp_vv_leq<scivector,sivector,cinterval>(v1,v2);
02342 }
02343
02344 inline bool operator<=(const srvector& v1, const scivector& v2) {
02345 return spsp_vv_leq<srvector,scivector,cinterval>(v1,v2);
02346 }
02347
02348 inline bool operator<=(const scvector& v1, const scivector& v2) {
02349 return spsp_vv_leq<scvector,scivector,cinterval>(v1,v2);
02350 }
02351
02352 inline bool operator<=(const sivector& v1, const scivector& v2) {
02353 return spsp_vv_leq<sivector,scivector,cinterval>(v1,v2);
02354 }
02355
02356 inline bool operator<=(const scivector& v1, const ivector& v2) {
02357 return spf_vv_leq<scivector,ivector,cinterval>(v1,v2);
02358 }
02359
02360 inline bool operator<=(const scivector& v1, const civector& v2) {
02361 return spf_vv_leq<scivector,civector,cinterval>(v1,v2);
02362 }
02363
02364 inline bool operator<=(const srvector& v1, const civector& v2) {
02365 return spf_vv_leq<srvector,civector,cinterval>(v1,v2);
02366 }
02367
02368 inline bool operator<=(const scvector& v1, const civector& v2) {
02369 return spf_vv_leq<scvector,civector,cinterval>(v1,v2);
02370 }
02371
02372 inline bool operator<=(const sivector& v1, const civector& v2) {
02373 return spf_vv_leq<sivector,civector,cinterval>(v1,v2);
02374 }
02375
02376 inline bool operator<=(const civector& v1, const sivector& v2) {
02377 return fsp_vv_leq<civector,sivector,cinterval>(v1,v2);
02378 }
02379
02380 inline bool operator<=(const civector& v1, const scivector& v2) {
02381 return fsp_vv_leq<civector,scivector,cinterval>(v1,v2);
02382 }
02383
02384 inline bool operator<=(const rvector& v1, const scivector& v2) {
02385 return fsp_vv_leq<rvector,scivector,cinterval>(v1,v2);
02386 }
02387
02388 inline bool operator<=(const cvector& v1, const scivector& v2) {
02389 return fsp_vv_leq<cvector,scivector,cinterval>(v1,v2);
02390 }
02391
02392 inline bool operator<=(const ivector& v1, const scivector& v2) {
02393 return fsp_vv_leq<ivector,scivector,cinterval>(v1,v2);
02394 }
02395
02396 inline bool operator<=(const scivector& v1, const ivector_slice& v2) {
02397 return spf_vv_leq<scivector,ivector_slice,cinterval>(v1,v2);
02398 }
02399
02400 inline bool operator<=(const srvector& v1, const civector_slice& v2) {
02401 return spf_vv_leq<srvector,civector_slice,cinterval>(v1,v2);
02402 }
02403
02404 inline bool operator<=(const scvector& v1, const civector_slice& v2) {
02405 return spf_vv_leq<scvector,civector_slice,cinterval>(v1,v2);
02406 }
02407
02408 inline bool operator<=(const sivector& v1, const civector_slice& v2) {
02409 return spf_vv_leq<sivector,civector_slice,cinterval>(v1,v2);
02410 }
02411
02412 inline bool operator<=(const scivector& v1, const civector_slice& v2) {
02413 return spf_vv_leq<scivector,civector_slice,cinterval>(v1,v2);
02414 }
02415
02416 inline bool operator<=(const civector_slice& v1, const sivector& v2) {
02417 return fsp_vv_leq<civector_slice,sivector,cinterval>(v1,v2);
02418 }
02419
02420 inline bool operator<=(const rvector_slice& v1, const scivector& v2) {
02421 return fsp_vv_leq<rvector_slice,scivector,cinterval>(v1,v2);
02422 }
02423
02424 inline bool operator<=(const ivector_slice& v1, const scivector& v2) {
02425 return fsp_vv_leq<ivector_slice,scivector,cinterval>(v1,v2);
02426 }
02427
02428 inline bool operator<=(const cvector_slice& v1, const scivector& v2) {
02429 return fsp_vv_leq<cvector_slice,scivector,cinterval>(v1,v2);
02430 }
02431
02432 inline bool operator<=(const civector_slice& v1, const scivector& v2) {
02433 return fsp_vv_leq<civector_slice,scivector,cinterval>(v1,v2);
02434 }
02435
02436 inline bool operator>(const scivector& v1, const scivector& v2) {
02437 return spsp_vv_greater<scivector,scivector,cinterval>(v1,v2);
02438 }
02439
02440 inline bool operator>(const scivector& v1, const srvector& v2) {
02441 return spsp_vv_greater<scivector,srvector,cinterval>(v1,v2);
02442 }
02443
02444 inline bool operator>(const scivector& v1, const sivector& v2) {
02445 return spsp_vv_greater<scivector,sivector,cinterval>(v1,v2);
02446 }
02447
02448 inline bool operator>(const scivector& v1, const scvector& v2) {
02449 return spsp_vv_greater<scivector,scvector,cinterval>(v1,v2);
02450 }
02451
02452 inline bool operator>(const sivector& v1, const scivector& v2) {
02453 return spsp_vv_greater<sivector,scivector,cinterval>(v1,v2);
02454 }
02455
02456 inline bool operator>(const scivector& v1, const rvector& v2) {
02457 return spf_vv_greater<scivector,rvector,cinterval>(v1,v2);
02458 }
02459
02460 inline bool operator>(const scivector& v1, const cvector& v2) {
02461 return spf_vv_greater<scivector,cvector,cinterval>(v1,v2);
02462 }
02463
02464 inline bool operator>(const scivector& v1, const ivector& v2) {
02465 return spf_vv_greater<scivector,ivector,cinterval>(v1,v2);
02466 }
02467
02468 inline bool operator>(const scivector& v1, const civector& v2) {
02469 return spf_vv_greater<scivector,civector,cinterval>(v1,v2);
02470 }
02471
02472 inline bool operator>(const sivector& v1, const civector& v2) {
02473 return spf_vv_greater<sivector,civector,cinterval>(v1,v2);
02474 }
02475
02476 inline bool operator>(const civector& v1, const srvector& v2) {
02477 return fsp_vv_greater<civector,srvector,cinterval>(v1,v2);
02478 }
02479
02480 inline bool operator>(const civector& v1, const scvector& v2) {
02481 return fsp_vv_greater<civector,scvector,cinterval>(v1,v2);
02482 }
02483
02484 inline bool operator>(const civector& v1, const sivector& v2) {
02485 return fsp_vv_greater<civector,sivector,cinterval>(v1,v2);
02486 }
02487
02488 inline bool operator>(const civector& v1, const scivector& v2) {
02489 return fsp_vv_greater<civector,scivector,cinterval>(v1,v2);
02490 }
02491
02492 inline bool operator>(const ivector& v1, const scivector& v2) {
02493 return fsp_vv_greater<ivector,scivector,cinterval>(v1,v2);
02494 }
02495
02496 inline bool operator>(const scivector& v1, const rvector_slice& v2) {
02497 return spf_vv_greater<scivector,rvector_slice,cinterval>(v1,v2);
02498 }
02499
02500 inline bool operator>(const scivector& v1, const ivector_slice& v2) {
02501 return spf_vv_greater<scivector,ivector_slice,cinterval>(v1,v2);
02502 }
02503
02504 inline bool operator>(const scivector& v1, const cvector_slice& v2) {
02505 return spf_vv_greater<scivector,cvector_slice,cinterval>(v1,v2);
02506 }
02507
02508 inline bool operator>(const sivector& v1, const civector_slice& v2) {
02509 return spf_vv_greater<sivector,civector_slice,cinterval>(v1,v2);
02510 }
02511
02512 inline bool operator>(const scivector& v1, const civector_slice& v2) {
02513 return spf_vv_greater<scivector,civector_slice,cinterval>(v1,v2);
02514 }
02515
02516 inline bool operator>(const civector_slice& v1, const srvector& v2) {
02517 return fsp_vv_greater<civector_slice,srvector,cinterval>(v1,v2);
02518 }
02519
02520 inline bool operator>(const civector_slice& v1, const sivector& v2) {
02521 return fsp_vv_greater<civector_slice,sivector,cinterval>(v1,v2);
02522 }
02523
02524 inline bool operator>(const civector_slice& v1, const scvector& v2) {
02525 return fsp_vv_greater<civector_slice,scvector,cinterval>(v1,v2);
02526 }
02527
02528 inline bool operator>(const ivector_slice& v1, const scivector& v2) {
02529 return fsp_vv_greater<ivector_slice,scivector,cinterval>(v1,v2);
02530 }
02531
02532 inline bool operator>(const civector_slice& v1, const scivector& v2) {
02533 return fsp_vv_greater<civector_slice,scivector,cinterval>(v1,v2);
02534 }
02535
02536 inline bool operator>=(const scivector& v1, const scivector& v2) {
02537 return spsp_vv_geq<scivector,scivector,cinterval>(v1,v2);
02538 }
02539
02540 inline bool operator>=(const scivector& v1, const srvector& v2) {
02541 return spsp_vv_geq<scivector,srvector,cinterval>(v1,v2);
02542 }
02543
02544 inline bool operator>=(const scivector& v1, const sivector& v2) {
02545 return spsp_vv_geq<scivector,sivector,cinterval>(v1,v2);
02546 }
02547
02548 inline bool operator>=(const scivector& v1, const scvector& v2) {
02549 return spsp_vv_geq<scivector,scvector,cinterval>(v1,v2);
02550 }
02551
02552 inline bool operator>=(const sivector& v1, const scivector& v2) {
02553 return spsp_vv_geq<sivector,scivector,cinterval>(v1,v2);
02554 }
02555
02556 inline bool operator>=(const scivector& v1, const rvector& v2) {
02557 return spf_vv_geq<scivector,rvector,cinterval>(v1,v2);
02558 }
02559
02560 inline bool operator>=(const scivector& v1, const cvector& v2) {
02561 return spf_vv_geq<scivector,cvector,cinterval>(v1,v2);
02562 }
02563
02564 inline bool operator>=(const scivector& v1, const ivector& v2) {
02565 return spf_vv_geq<scivector,ivector,cinterval>(v1,v2);
02566 }
02567
02568 inline bool operator>=(const scivector& v1, const civector& v2) {
02569 return spf_vv_geq<scivector,civector,cinterval>(v1,v2);
02570 }
02571
02572 inline bool operator>=(const sivector& v1, const civector& v2) {
02573 return spf_vv_geq<sivector,civector,cinterval>(v1,v2);
02574 }
02575
02576 inline bool operator>=(const civector& v1, const srvector& v2) {
02577 return fsp_vv_geq<civector,srvector,cinterval>(v1,v2);
02578 }
02579
02580 inline bool operator>=(const civector& v1, const scvector& v2) {
02581 return fsp_vv_geq<civector,scvector,cinterval>(v1,v2);
02582 }
02583
02584 inline bool operator>=(const civector& v1, const sivector& v2) {
02585 return fsp_vv_geq<civector,sivector,cinterval>(v1,v2);
02586 }
02587
02588 inline bool operator>=(const civector& v1, const scivector& v2) {
02589 return fsp_vv_geq<civector,scivector,cinterval>(v1,v2);
02590 }
02591
02592 inline bool operator>=(const ivector& v1, const scivector& v2) {
02593 return fsp_vv_geq<ivector,scivector,cinterval>(v1,v2);
02594 }
02595
02596 inline bool operator>=(const scivector& v1, const rvector_slice& v2) {
02597 return spf_vv_geq<scivector,rvector_slice,cinterval>(v1,v2);
02598 }
02599
02600 inline bool operator>=(const scivector& v1, const ivector_slice& v2) {
02601 return spf_vv_geq<scivector,ivector_slice,cinterval>(v1,v2);
02602 }
02603
02604 inline bool operator>=(const scivector& v1, const cvector_slice& v2) {
02605 return spf_vv_geq<scivector,cvector_slice,cinterval>(v1,v2);
02606 }
02607
02608 inline bool operator>=(const sivector& v1, const civector_slice& v2) {
02609 return spf_vv_geq<sivector,civector_slice,cinterval>(v1,v2);
02610 }
02611
02612 inline bool operator>=(const scivector& v1, const civector_slice& v2) {
02613 return spf_vv_geq<scivector,civector_slice,cinterval>(v1,v2);
02614 }
02615
02616 inline bool operator>=(const civector_slice& v1, const srvector& v2) {
02617 return fsp_vv_geq<civector_slice,srvector,cinterval>(v1,v2);
02618 }
02619
02620 inline bool operator>=(const civector_slice& v1, const sivector& v2) {
02621 return fsp_vv_geq<civector_slice,sivector,cinterval>(v1,v2);
02622 }
02623
02624 inline bool operator>=(const civector_slice& v1, const scvector& v2) {
02625 return fsp_vv_geq<civector,scvector,cinterval>(v1,v2);
02626 }
02627
02628 inline bool operator>=(const ivector_slice& v1, const scivector& v2) {
02629 return fsp_vv_geq<ivector_slice,scivector,cinterval>(v1,v2);
02630 }
02631
02632 inline bool operator>=(const civector_slice& v1, const scivector& v2) {
02633 return fsp_vv_geq<civector_slice,scivector,cinterval>(v1,v2);
02634 }
02635
02636 inline std::ostream& operator<<(std::ostream& os, const scivector& v) {
02637 return sp_v_output<scivector,cinterval>(os,v);
02638 }
02639
02640 inline std::istream& operator>>(std::istream& is, scivector& v) {
02641 return sp_v_input<scivector,cinterval>(is,v);
02642 }
02643
02644
02645 class scivector_slice {
02646 private:
02647 std::vector<int>& p;
02648 std::vector<cinterval>& x;
02649 scivector& orig;
02650 int start,end;
02651 int lb;
02652 int ub;
02653 int n;
02654 int nnz;
02655 int offset;
02656
02657 scivector_slice(scivector& v, int l, int u) : p(v.p), x(v.x), orig(v), lb(l), ub(u), n(u-l+1) {
02658 int i;
02659
02660 for(i=0 ; i<v.get_nnz() && p[i]<lb-v.lb ; i++);
02661
02662 start = i;
02663
02664 for(i=start ; i<v.get_nnz() && p[i]<=ub-v.lb ; i++);
02665
02666 end = i-1;
02667
02668 nnz = end-start+1;
02669 offset = lb-v.lb;
02670 }
02671
02672 public:
02673
02674 int get_nnz() const {
02675 return nnz;
02676 }
02677
02678 real density() const {
02679 return (double)nnz/n;
02680 }
02681
02682 cinterval& operator[](const int i) {
02683 #if(CXSC_INDEX_CHECK)
02684 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator[](const int)"));
02685 #endif
02686 int k;
02687
02688 for(k=start ; k<end+1 && p[k]-start<=i-lb ; k++) {
02689 if(p[k]-offset == i-lb)
02690 return x[k];
02691 }
02692
02693 p.insert(p.begin() + k, i-lb);
02694 x.insert(x.begin() + k, cinterval(0.0));
02695 end++;
02696
02697 return x[k];
02698 }
02699
02700 cinterval operator[](const int i) const {
02701 #if(CXSC_INDEX_CHECK)
02702 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator[](const int)"));
02703 #endif
02704 return (*this)(i);
02705 }
02706
02707 cinterval operator()(const int i) const {
02708 #if(CXSC_INDEX_CHECK)
02709 if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator()(const int)"));
02710 #endif
02711 cinterval r(0.0);
02712
02713 for(int k=start ; k<end && p[k]-start<=i-lb ; k++) {
02714 if(p[k]-start == i-lb)
02715 r = x[k];
02716 }
02717
02718 return r;
02719 }
02720
02721 scivector_slice& operator=(const real& v) {
02722 return sl_vs_assign<scivector_slice,real,cinterval,std::vector<cinterval>::iterator>(*this,v);
02723 }
02724
02725 scivector_slice& operator=(const complex& v) {
02726 return sl_vs_assign<scivector_slice,complex,cinterval,std::vector<cinterval>::iterator>(*this,v);
02727 }
02728
02729 scivector_slice& operator=(const interval& v) {
02730 return sl_vs_assign<scivector_slice,interval,cinterval,std::vector<cinterval>::iterator>(*this,v);
02731 }
02732
02733 scivector_slice& operator=(const cinterval& v) {
02734 return sl_vs_assign<scivector_slice,cinterval,cinterval,std::vector<cinterval>::iterator>(*this,v);
02735 }
02736
02737 scivector_slice& operator=(const srvector_slice& v) {
02738 return slsl_vv_assign<scivector_slice,srvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02739 }
02740
02741 scivector_slice& operator=(const scvector_slice& v) {
02742 return slsl_vv_assign<scivector_slice,scvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02743 }
02744
02745 scivector_slice& operator=(const sivector_slice& v) {
02746 return slsl_vv_assign<scivector_slice,sivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02747 }
02748
02749 scivector_slice& operator=(const scivector_slice& v) {
02750 return slsl_vv_assign<scivector_slice,scivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02751 }
02752
02753 scivector_slice& operator=(const srvector& v) {
02754 return slsp_vv_assign<scivector_slice,srvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02755 }
02756
02757 scivector_slice& operator=(const scvector& v) {
02758 return slsp_vv_assign<scivector_slice,scvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02759 }
02760
02761 scivector_slice& operator=(const sivector& v) {
02762 return slsp_vv_assign<scivector_slice,sivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02763 }
02764
02765 scivector_slice& operator=(const scivector& v) {
02766 return slsp_vv_assign<scivector_slice,scivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02767 }
02768
02769 scivector_slice& operator=(const rvector& v) {
02770 return slf_vv_assign<scivector_slice,rvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02771 }
02772
02773 scivector_slice& operator=(const cvector& v) {
02774 return slf_vv_assign<scivector_slice,cvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02775 }
02776
02777 scivector_slice& operator=(const ivector& v) {
02778 return slf_vv_assign<scivector_slice,ivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02779 }
02780
02781 scivector_slice& operator=(const civector& v) {
02782 return slf_vv_assign<scivector_slice,civector,cinterval,std::vector<cinterval>::iterator>(*this,v);
02783 }
02784
02785 scivector_slice& operator=(const rvector_slice& v) {
02786 return slf_vv_assign<scivector_slice,rvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02787 }
02788
02789 scivector_slice& operator=(const cvector_slice& v) {
02790 return slf_vv_assign<scivector_slice,cvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02791 }
02792
02793 scivector_slice& operator=(const ivector_slice& v) {
02794 return slf_vv_assign<scivector_slice,ivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02795 }
02796
02797 scivector_slice& operator=(const civector_slice& v) {
02798 return slf_vv_assign<scivector_slice,civector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
02799 }
02800
02801 scivector_slice& operator*=(const real& s) {
02802 return sl_vs_multassign(*this,s);
02803 }
02804
02805 scivector_slice& operator*=(const complex& s) {
02806 return sl_vs_multassign(*this,s);
02807 }
02808
02809 scivector_slice& operator*=(const interval& s) {
02810 return sl_vs_multassign(*this,s);
02811 }
02812
02813 scivector_slice& operator*=(const cinterval& s) {
02814 return sl_vs_multassign(*this,s);
02815 }
02816
02817 scivector_slice& operator/=(const real& s) {
02818 return sl_vs_divassign(*this,s);
02819 }
02820
02821 scivector_slice& operator/=(const complex& s) {
02822 return sl_vs_divassign(*this,s);
02823 }
02824
02825 scivector_slice& operator/=(const interval& s) {
02826 return sl_vs_divassign(*this,s);
02827 }
02828
02829 scivector_slice& operator/=(const cinterval& s) {
02830 return sl_vs_divassign(*this,s);
02831 }
02832
02833 scivector_slice& operator+=(const rvector& v) {
02834 return slf_vv_addassign<scivector_slice,rvector,cinterval>(*this,v);
02835 }
02836
02837 scivector_slice& operator+=(const ivector& v) {
02838 return slf_vv_addassign<scivector_slice,ivector,cinterval>(*this,v);
02839 }
02840
02841 scivector_slice& operator+=(const cvector& v) {
02842 return slf_vv_addassign<scivector_slice,cvector,cinterval>(*this,v);
02843 }
02844
02845 scivector_slice& operator+=(const civector& v) {
02846 return slf_vv_addassign<scivector_slice,civector,cinterval>(*this,v);
02847 }
02848
02849 scivector_slice& operator+=(const rvector_slice& v) {
02850 return slf_vv_addassign<scivector_slice,rvector_slice,cinterval>(*this,v);
02851 }
02852
02853 scivector_slice& operator+=(const cvector_slice& v) {
02854 return slf_vv_addassign<scivector_slice,cvector_slice,cinterval>(*this,v);
02855 }
02856
02857 scivector_slice& operator+=(const ivector_slice& v) {
02858 return slf_vv_addassign<scivector_slice,ivector_slice,cinterval>(*this,v);
02859 }
02860
02861 scivector_slice& operator+=(const civector_slice& v) {
02862 return slf_vv_addassign<scivector_slice,civector_slice,cinterval>(*this,v);
02863 }
02864
02865 scivector_slice& operator+=(const srvector& v) {
02866 return slsp_vv_addassign(*this,v);
02867 }
02868
02869 scivector_slice& operator+=(const scvector& v) {
02870 return slsp_vv_addassign(*this,v);
02871 }
02872
02873 scivector_slice& operator+=(const sivector& v) {
02874 return slsp_vv_addassign(*this,v);
02875 }
02876
02877 scivector_slice& operator+=(const scivector& v) {
02878 return slsp_vv_addassign(*this,v);
02879 }
02880
02881 scivector_slice& operator+=(const srvector_slice& v) {
02882 return slsl_vv_addassign(*this,v);
02883 }
02884
02885 scivector_slice& operator+=(const scvector_slice& v) {
02886 return slsl_vv_addassign(*this,v);
02887 }
02888
02889 scivector_slice& operator+=(const sivector_slice& v) {
02890 return slsl_vv_addassign(*this,v);
02891 }
02892
02893 scivector_slice& operator+=(const scivector_slice& v) {
02894 return slsl_vv_addassign(*this,v);
02895 }
02896
02897 scivector_slice& operator-=(const rvector& v) {
02898 return slf_vv_subassign<scivector_slice,rvector,cinterval>(*this,v);
02899 }
02900
02901 scivector_slice& operator-=(const ivector& v) {
02902 return slf_vv_subassign<scivector_slice,ivector,cinterval>(*this,v);
02903 }
02904
02905 scivector_slice& operator-=(const cvector& v) {
02906 return slf_vv_subassign<scivector_slice,cvector,cinterval>(*this,v);
02907 }
02908
02909 scivector_slice& operator-=(const civector& v) {
02910 return slf_vv_subassign<scivector_slice,civector,cinterval>(*this,v);
02911 }
02912
02913 scivector_slice& operator-=(const rvector_slice& v) {
02914 return slf_vv_subassign<scivector_slice,rvector_slice,cinterval>(*this,v);
02915 }
02916
02917 scivector_slice& operator-=(const cvector_slice& v) {
02918 return slf_vv_subassign<scivector_slice,cvector_slice,cinterval>(*this,v);
02919 }
02920
02921 scivector_slice& operator-=(const ivector_slice& v) {
02922 return slf_vv_subassign<scivector_slice,ivector_slice,cinterval>(*this,v);
02923 }
02924
02925 scivector_slice& operator-=(const civector_slice& v) {
02926 return slf_vv_subassign<scivector_slice,civector_slice,cinterval>(*this,v);
02927 }
02928
02929 scivector_slice& operator-=(const srvector& v) {
02930 return slsp_vv_subassign(*this,v);
02931 }
02932
02933 scivector_slice& operator-=(const scvector& v) {
02934 return slsp_vv_subassign(*this,v);
02935 }
02936
02937 scivector_slice& operator-=(const sivector& v) {
02938 return slsp_vv_subassign(*this,v);
02939 }
02940
02941 scivector_slice& operator-=(const scivector& v) {
02942 return slsp_vv_subassign(*this,v);
02943 }
02944
02945 scivector_slice& operator-=(const srvector_slice& v) {
02946 return slsl_vv_subassign(*this,v);
02947 }
02948
02949 scivector_slice& operator-=(const scvector_slice& v) {
02950 return slsl_vv_subassign(*this,v);
02951 }
02952
02953 scivector_slice& operator-=(const sivector_slice& v) {
02954 return slsl_vv_subassign(*this,v);
02955 }
02956
02957 scivector_slice& operator-=(const scivector_slice& v) {
02958 return slsl_vv_subassign(*this,v);
02959 }
02960
02961 scivector_slice& operator|=(const rvector& v) {
02962 return slf_vv_hullassign<scivector_slice,rvector,cinterval>(*this,v);
02963 }
02964
02965 scivector_slice& operator|=(const ivector& v) {
02966 return slf_vv_hullassign<scivector_slice,ivector,cinterval>(*this,v);
02967 }
02968
02969 scivector_slice& operator|=(const cvector& v) {
02970 return slf_vv_hullassign<scivector_slice,cvector,cinterval>(*this,v);
02971 }
02972
02973 scivector_slice& operator|=(const civector& v) {
02974 return slf_vv_hullassign<scivector_slice,civector,cinterval>(*this,v);
02975 }
02976
02977 scivector_slice& operator|=(const rvector_slice& v) {
02978 return slf_vv_hullassign<scivector_slice,rvector_slice,cinterval>(*this,v);
02979 }
02980
02981 scivector_slice& operator|=(const cvector_slice& v) {
02982 return slf_vv_hullassign<scivector_slice,cvector_slice,cinterval>(*this,v);
02983 }
02984
02985 scivector_slice& operator|=(const ivector_slice& v) {
02986 return slf_vv_hullassign<scivector_slice,ivector_slice,cinterval>(*this,v);
02987 }
02988
02989 scivector_slice& operator|=(const civector_slice& v) {
02990 return slf_vv_hullassign<scivector_slice,civector_slice,cinterval>(*this,v);
02991 }
02992
02993 scivector_slice& operator|=(const srvector& v) {
02994 return slsp_vv_hullassign(*this,v);
02995 }
02996
02997 scivector_slice& operator|=(const scvector& v) {
02998 return slsp_vv_hullassign(*this,v);
02999 }
03000
03001 scivector_slice& operator|=(const sivector& v) {
03002 return slsp_vv_hullassign(*this,v);
03003 }
03004
03005 scivector_slice& operator|=(const scivector& v) {
03006 return slsp_vv_hullassign(*this,v);
03007 }
03008
03009 scivector_slice& operator|=(const srvector_slice& v) {
03010 return slsl_vv_hullassign(*this,v);
03011 }
03012
03013 scivector_slice& operator|=(const scvector_slice& v) {
03014 return slsl_vv_hullassign(*this,v);
03015 }
03016
03017 scivector_slice& operator|=(const sivector_slice& v) {
03018 return slsl_vv_hullassign(*this,v);
03019 }
03020
03021 scivector_slice& operator|=(const scivector_slice& v) {
03022 return slsl_vv_hullassign(*this,v);
03023 }
03024
03025 scivector_slice& operator&=(const ivector& v) {
03026 return slf_vv_intersectassign<scivector_slice,ivector,cinterval>(*this,v);
03027 }
03028
03029 scivector_slice& operator&=(const civector& v) {
03030 return slf_vv_intersectassign<scivector_slice,civector,cinterval>(*this,v);
03031 }
03032
03033 scivector_slice& operator&=(const ivector_slice& v) {
03034 return slf_vv_intersectassign<scivector_slice,ivector_slice,cinterval>(*this,v);
03035 }
03036
03037 scivector_slice& operator&=(const civector_slice& v) {
03038 return slf_vv_intersectassign<scivector_slice,civector_slice,cinterval>(*this,v);
03039 }
03040
03041 scivector_slice& operator&=(const sivector& v) {
03042 return slsp_vv_intersectassign(*this,v);
03043 }
03044
03045 scivector_slice& operator&=(const scivector& v) {
03046 return slsp_vv_intersectassign(*this,v);
03047 }
03048
03049 scivector_slice& operator&=(const sivector_slice& v) {
03050 return slsl_vv_intersectassign(*this,v);
03051 }
03052
03053 scivector_slice& operator&=(const scivector_slice& v) {
03054 return slsl_vv_intersectassign(*this,v);
03055 }
03056
03057 friend int Lb(const scivector_slice&);
03058 friend int Ub(const scivector_slice&);
03059 friend sivector Re(const scivector_slice&);
03060 friend sivector Im(const scivector_slice&);
03061 friend scvector Inf(const scivector_slice&);
03062 friend scvector Sup(const scivector_slice&);
03063 friend srvector InfRe(const scivector_slice&);
03064 friend srvector InfIm(const scivector_slice&);
03065 friend srvector SupRe(const scivector_slice&);
03066 friend srvector SupIm(const scivector_slice&);
03067 friend sivector abs(const scivector_slice&);
03068 friend scivector conj(const scivector_slice&);
03069 friend scvector mid(const scivector_slice&);
03070 friend scvector diam(const scivector_slice&);
03071 friend int VecLen(const scivector_slice&);
03072
03073
03074
03075
03076 friend class srvector;
03077 friend class scvector;
03078 friend class sivector;
03079 friend class scivector;
03080 friend class civector;
03081 friend class civector_slice;
03082
03083 #include "vector_friend_declarations.inl"
03084 };
03085
03086 inline civector::civector(const srvector_slice& v) {
03087 l = v.lb;
03088 u = v.ub;
03089 size = v.n;
03090 dat = new cinterval[v.n];
03091 for(int i=0 ; i<v.n ; i++)
03092 dat[i] = 0.0;
03093 for(int i=v.start ; i<=v.end ; i++)
03094 dat[v.p[i]] = v.x[i];
03095 }
03096
03097 inline civector::civector(const scvector_slice& v) {
03098 l = v.lb;
03099 u = v.ub;
03100 size = v.n;
03101 dat = new cinterval[v.n];
03102 for(int i=0 ; i<v.n ; i++)
03103 dat[i] = 0.0;
03104 for(int i=v.start ; i<=v.end ; i++)
03105 dat[v.p[i]] = v.x[i];
03106 }
03107
03108 inline civector::civector(const sivector_slice& v) {
03109 l = v.lb;
03110 u = v.ub;
03111 size = v.n;
03112 dat = new cinterval[v.n];
03113 for(int i=0 ; i<v.n ; i++)
03114 dat[i] = 0.0;
03115 for(int i=v.start ; i<=v.end ; i++)
03116 dat[v.p[i]] = v.x[i];
03117 }
03118
03119 inline civector::civector(const scivector_slice& v) {
03120 l = v.lb;
03121 u = v.ub;
03122 size = v.n;
03123 dat = new cinterval[v.n];
03124 for(int i=0 ; i<v.n ; i++)
03125 dat[i] = 0.0;
03126 for(int i=v.start ; i<=v.end ; i++)
03127 dat[v.p[i]] = v.x[i];
03128 }
03129
03130 inline civector_slice& civector_slice::operator=(const srvector& v) {
03131 *this = rvector(v);
03132 return *this;
03133 }
03134
03135 inline civector_slice& civector_slice::operator=(const srvector_slice& v) {
03136 *this = rvector(v);
03137 return *this;
03138 }
03139
03140 inline civector_slice& civector_slice::operator=(const sivector& v) {
03141 *this = ivector(v);
03142 return *this;
03143 }
03144
03145 inline civector_slice& civector_slice::operator=(const sivector_slice& v) {
03146 *this = ivector(v);
03147 return *this;
03148 }
03149
03150 inline civector_slice& civector_slice::operator=(const scvector& v) {
03151 *this = cvector(v);
03152 return *this;
03153 }
03154
03155 inline civector_slice& civector_slice::operator=(const scvector_slice& v) {
03156 *this = cvector(v);
03157 return *this;
03158 }
03159
03160 inline civector_slice& civector_slice::operator=(const scivector& v) {
03161 *this = civector(v);
03162 return *this;
03163 }
03164
03165 inline civector_slice& civector_slice::operator=(const scivector_slice& v) {
03166 *this = civector(v);
03167 return *this;
03168 }
03169
03170 inline scivector::scivector(const srvector_slice& s) : lb(s.lb), ub(s.ub), n(s.n) {
03171 p.reserve(s.nnz);
03172 x.reserve(s.nnz);
03173
03174 for(int i=s.start ; i<=s.end ; i++) {
03175 p.push_back(s.p[i]-s.offset);
03176 x.push_back(cinterval(s.x[i]));
03177 }
03178
03179 }
03180
03181 inline scivector::scivector(const scvector_slice& s) : lb(s.lb), ub(s.ub), n(s.n) {
03182 p.reserve(s.nnz);
03183 x.reserve(s.nnz);
03184
03185 for(int i=s.start ; i<=s.end ; i++) {
03186 p.push_back(s.p[i]-s.offset);
03187 x.push_back(cinterval(s.x[i]));
03188 }
03189
03190 }
03191
03192 inline scivector::scivector(const sivector_slice& s) : lb(s.lb), ub(s.ub), n(s.n) {
03193 p.reserve(s.nnz);
03194 x.reserve(s.nnz);
03195
03196 for(int i=s.start ; i<=s.end ; i++) {
03197 p.push_back(s.p[i]-s.offset);
03198 x.push_back(cinterval(s.x[i]));
03199 }
03200
03201 }
03202
03203 inline scivector::scivector(const scivector_slice& s) : lb(s.lb), ub(s.ub), n(s.n) {
03204 p.reserve(s.nnz);
03205 x.reserve(s.nnz);
03206
03207 for(int i=s.start ; i<=s.end ; i++) {
03208 p.push_back(s.p[i]-s.offset);
03209 x.push_back(s.x[i]);
03210 }
03211
03212 }
03213
03214 inline scivector& scivector::operator=(const srvector_slice& v) {
03215 return spsl_vv_assign<scivector,srvector_slice,cinterval>(*this,v);
03216 }
03217
03218 inline scivector& scivector::operator=(const scvector_slice& v) {
03219 return spsl_vv_assign<scivector,scvector_slice,cinterval>(*this,v);
03220 }
03221
03222 inline scivector& scivector::operator=(const sivector_slice& v) {
03223 return spsl_vv_assign<scivector,sivector_slice,cinterval>(*this,v);
03224 }
03225
03226 inline scivector& scivector::operator=(const scivector_slice& v) {
03227 return spsl_vv_assign<scivector,scivector_slice,cinterval>(*this,v);
03228 }
03229
03230 inline scivector_slice scivector::operator()(const int i, const int j) {
03231 #if(CXSC_INDEX_CHECK)
03232 if(i<lb || j>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator()(const int, const int)"));
03233 #endif
03234 return scivector_slice(*this,i,j);
03235 }
03236
03237 inline scivector operator-(const scivector_slice& v) {
03238 return sl_v_negative<scivector_slice,scivector>(v);
03239 }
03240
03241 inline int Lb(const scivector_slice& v) {
03242 return v.lb;
03243 }
03244
03245 inline int Ub(const scivector_slice& v) {
03246 return v.ub;
03247 }
03248
03249 inline sivector Re(const scivector_slice& v) {
03250 return Re(scivector(v));
03251 }
03252
03253 inline sivector Im(const scivector_slice& v) {
03254 return Im(scivector(v));
03255 }
03256
03257 inline scvector Inf(const scivector_slice& v) {
03258 return Inf(scivector(v));
03259 }
03260
03261 inline scvector Sup(const scivector_slice& v) {
03262 return Sup(scivector(v));
03263 }
03264
03265 inline srvector InfRe(const scivector_slice& v) {
03266 return InfRe(scivector(v));
03267 }
03268
03269 inline srvector InfIm(const scivector_slice& v) {
03270 return InfIm(scivector(v));
03271 }
03272
03273 inline srvector SupRe(const scivector_slice& v) {
03274 return SupRe(scivector(v));
03275 }
03276
03277 inline srvector SupIm(const scivector_slice& v) {
03278 return SupIm(scivector(v));
03279 }
03280
03281 inline scivector conj(const scivector_slice& v) {
03282 scivector res(v.n, v.nnz);
03283 res.lb = v.lb;
03284 res.ub = v.ub;
03285 res.p = v.p;
03286 for(int i=v.start ; i<=v.end ; i++)
03287 res.x.push_back(conj(v.x[i]));
03288 return res;
03289 }
03290
03291 inline sivector abs(const scivector_slice& v) {
03292 sivector res(v.n, v.nnz);
03293 res.lb = v.lb;
03294 res.ub = v.ub;
03295 res.p = v.p;
03296 for(int i=v.start ; i<=v.end ; i++)
03297 res.x.push_back(abs(v.x[i]));
03298 return res;
03299 }
03300
03301 inline scvector mid(const scivector_slice& v) {
03302 scvector res(v.n, v.nnz);
03303 res.lb = v.lb;
03304 res.ub = v.ub;
03305 res.p = v.p;
03306 for(int i=v.start ; i<=v.end ; i++)
03307 res.x.push_back(mid(v.x[i]));
03308 return res;
03309 }
03310
03311 inline scvector diam(const scivector_slice& v) {
03312 scvector res(v.n, v.nnz);
03313 res.lb = v.lb;
03314 res.ub = v.ub;
03315 res.p = v.p;
03316 for(int i=v.start ; i<v.end ; i++)
03317 res.x.push_back(diam(v.x[i]));
03318 return res;
03319 }
03320
03321 inline int VecLen(const scivector_slice& v) {
03322 return v.n;
03323 }
03324
03325 inline cinterval operator*(const scivector_slice& v1, const rvector& v2) {
03326 return slf_vv_mult<scivector_slice,rvector,cinterval,sparse_cidot>(v1,v2);
03327 }
03328
03329 inline cinterval operator*(const scivector_slice& v1, const cvector& v2) {
03330 return slf_vv_mult<scivector_slice,cvector,cinterval,sparse_cidot>(v1,v2);
03331 }
03332
03333 inline cinterval operator*(const scivector_slice& v1, const ivector& v2) {
03334 return slf_vv_mult<scivector_slice,ivector,cinterval,sparse_cidot>(v1,v2);
03335 }
03336
03337 inline cinterval operator*(const scivector_slice& v1, const civector& v2) {
03338 return slf_vv_mult<scivector_slice,civector,cinterval,sparse_cidot>(v1,v2);
03339 }
03340
03341 inline cinterval operator*(const srvector_slice& v1, const civector& v2) {
03342 return slf_vv_mult<srvector_slice,civector,cinterval,sparse_cidot>(v1,v2);
03343 }
03344
03345 inline cinterval operator*(const sivector_slice& v1, const civector& v2) {
03346 return slf_vv_mult<sivector_slice,civector,cinterval,sparse_cidot>(v1,v2);
03347 }
03348
03349 inline cinterval operator*(const scvector_slice& v1, const civector& v2) {
03350 return slf_vv_mult<scvector_slice,civector,cinterval,sparse_cidot>(v1,v2);
03351 }
03352
03353 inline cinterval operator*(const scvector_slice& v1, const ivector& v2) {
03354 return slf_vv_mult<scvector_slice,ivector,cinterval,sparse_cidot>(v1,v2);
03355 }
03356
03357 inline cinterval operator*(const sivector_slice& v1, const cvector& v2) {
03358 return slf_vv_mult<sivector_slice,cvector,cinterval,sparse_cidot>(v1,v2);
03359 }
03360
03361 inline cinterval operator*(const civector& v1, const srvector_slice& v2) {
03362 return fsl_vv_mult<civector,srvector_slice,cinterval,sparse_cidot>(v1,v2);
03363 }
03364
03365 inline cinterval operator*(const civector& v1, const scvector_slice& v2) {
03366 return fsl_vv_mult<civector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03367 }
03368
03369 inline cinterval operator*(const civector& v1, const sivector_slice& v2) {
03370 return fsl_vv_mult<civector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03371 }
03372
03373 inline cinterval operator*(const civector& v1, const scivector_slice& v2) {
03374 return fsl_vv_mult<civector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03375 }
03376
03377 inline cinterval operator*(const rvector& v1, const scivector_slice& v2) {
03378 return fsl_vv_mult<rvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03379 }
03380
03381 inline cinterval operator*(const cvector& v1, const scivector_slice& v2) {
03382 return fsl_vv_mult<cvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03383 }
03384
03385 inline cinterval operator*(const ivector& v1, const scivector_slice& v2) {
03386 return fsl_vv_mult<ivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03387 }
03388
03389 inline cinterval operator*(const cvector& v1, const sivector_slice& v2) {
03390 return fsl_vv_mult<cvector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03391 }
03392
03393 inline cinterval operator*(const ivector& v1, const scvector_slice& v2) {
03394 return fsl_vv_mult<ivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03395 }
03396
03397 inline cinterval operator*(const scivector_slice& v1, const rvector_slice& v2) {
03398 return slf_vv_mult<scivector_slice,rvector_slice,cinterval,sparse_cidot>(v1,v2);
03399 }
03400
03401 inline cinterval operator*(const scivector_slice& v1, const ivector_slice& v2) {
03402 return slf_vv_mult<scivector_slice,ivector_slice,cinterval,sparse_cidot>(v1,v2);
03403 }
03404
03405 inline cinterval operator*(const scivector_slice& v1, const cvector_slice& v2) {
03406 return slf_vv_mult<scivector_slice,cvector_slice,cinterval,sparse_cidot>(v1,v2);
03407 }
03408
03409 inline cinterval operator*(const scivector_slice& v1, const civector_slice& v2) {
03410 return slf_vv_mult<scivector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
03411 }
03412
03413 inline cinterval operator*(const srvector_slice& v1, const civector_slice& v2) {
03414 return slf_vv_mult<srvector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
03415 }
03416
03417 inline cinterval operator*(const scvector_slice& v1, const civector_slice& v2) {
03418 return slf_vv_mult<scvector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
03419 }
03420
03421 inline cinterval operator*(const sivector_slice& v1, const civector_slice& v2) {
03422 return slf_vv_mult<sivector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
03423 }
03424
03425 inline cinterval operator*(const scvector_slice& v1, const ivector_slice& v2) {
03426 return slf_vv_mult<scvector_slice,ivector_slice,cinterval,sparse_cidot>(v1,v2);
03427 }
03428
03429 inline cinterval operator*(const sivector_slice& v1, const cvector_slice& v2) {
03430 return slf_vv_mult<sivector_slice,cvector_slice,cinterval,sparse_cidot>(v1,v2);
03431 }
03432
03433 inline cinterval operator*(const civector_slice& v1, const srvector_slice& v2) {
03434 return fsl_vv_mult<civector_slice,srvector_slice,cinterval,sparse_cidot>(v1,v2);
03435 }
03436
03437 inline cinterval operator*(const civector_slice& v1, const scvector_slice& v2) {
03438 return fsl_vv_mult<civector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03439 }
03440
03441 inline cinterval operator*(const civector_slice& v1, const sivector_slice& v2) {
03442 return fsl_vv_mult<civector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03443 }
03444
03445 inline cinterval operator*(const civector_slice& v1, const scivector_slice& v2) {
03446 return fsl_vv_mult<civector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03447 }
03448
03449 inline cinterval operator*(const rvector_slice& v1, const scivector_slice& v2) {
03450 return fsl_vv_mult<rvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03451 }
03452
03453 inline cinterval operator*(const ivector_slice& v1, const scivector_slice& v2) {
03454 return fsl_vv_mult<ivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03455 }
03456
03457 inline cinterval operator*(const cvector_slice& v1, const scivector_slice& v2) {
03458 return fsl_vv_mult<cvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03459 }
03460
03461 inline cinterval operator*(const cvector_slice& v1, const sivector_slice& v2) {
03462 return fsl_vv_mult<cvector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03463 }
03464
03465 inline cinterval operator*(const ivector_slice& v1, const scvector_slice& v2) {
03466 return fsl_vv_mult<ivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03467 }
03468
03469 inline cinterval operator*(const scivector& v1, const srvector_slice& v2) {
03470 return spsl_vv_mult<scivector,srvector_slice,cinterval,sparse_cidot>(v1,v2);
03471 }
03472
03473 inline cinterval operator*(const scivector& v1, const scvector_slice& v2) {
03474 return spsl_vv_mult<scivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03475 }
03476
03477 inline cinterval operator*(const scivector& v1, const sivector_slice& v2) {
03478 return spsl_vv_mult<scivector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03479 }
03480
03481 inline cinterval operator*(const scivector& v1, const scivector_slice& v2) {
03482 return spsl_vv_mult<scivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03483 }
03484
03485 inline cinterval operator*(const srvector& v1, const scivector_slice& v2) {
03486 return spsl_vv_mult<srvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03487 }
03488
03489 inline cinterval operator*(const scvector& v1, const scivector_slice& v2) {
03490 return spsl_vv_mult<scvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03491 }
03492
03493 inline cinterval operator*(const sivector& v1, const scivector_slice& v2) {
03494 return spsl_vv_mult<sivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03495 }
03496
03497 inline cinterval operator*(const scvector& v1, const sivector_slice& v2) {
03498 return spsl_vv_mult<scvector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03499 }
03500
03501 inline cinterval operator*(const sivector& v1, const scvector_slice& v2) {
03502 return spsl_vv_mult<sivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03503 }
03504
03505 inline cinterval operator*(const scivector_slice& v1, const srvector& v2) {
03506 return slsp_vv_mult<scivector_slice,srvector,cinterval,sparse_cidot>(v1,v2);
03507 }
03508
03509 inline cinterval operator*(const scivector_slice& v1, const scvector& v2) {
03510 return slsp_vv_mult<scivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
03511 }
03512
03513 inline cinterval operator*(const scivector_slice& v1, const sivector& v2) {
03514 return slsp_vv_mult<scivector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
03515 }
03516
03517 inline cinterval operator*(const scivector_slice& v1, const scivector& v2) {
03518 return slsp_vv_mult<scivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
03519 }
03520
03521 inline cinterval operator*(const srvector_slice& v1, const scivector& v2) {
03522 return slsp_vv_mult<srvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
03523 }
03524
03525 inline cinterval operator*(const sivector_slice& v1, const scivector& v2) {
03526 return slsp_vv_mult<sivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
03527 }
03528
03529 inline cinterval operator*(const scvector_slice& v1, const scivector& v2) {
03530 return slsp_vv_mult<scvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
03531 }
03532
03533 inline cinterval operator*(const scvector_slice& v1, const sivector& v2) {
03534 return slsp_vv_mult<scvector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
03535 }
03536
03537 inline cinterval operator*(const sivector_slice& v1, const scvector& v2) {
03538 return slsp_vv_mult<sivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
03539 }
03540
03541 inline cinterval operator*(const scivector_slice& v1, const srvector_slice& v2) {
03542 return slsl_vv_mult<scivector_slice,srvector_slice,cinterval,sparse_cidot>(v1,v2);
03543 }
03544
03545 inline cinterval operator*(const scivector_slice& v1, const scvector_slice& v2) {
03546 return slsl_vv_mult<scivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03547 }
03548
03549 inline cinterval operator*(const scivector_slice& v1, const sivector_slice& v2) {
03550 return slsl_vv_mult<scivector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03551 }
03552
03553 inline cinterval operator*(const scivector_slice& v1, const scivector_slice& v2) {
03554 return slsl_vv_mult<scivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03555 }
03556
03557 inline cinterval operator*(const srvector_slice& v1, const scivector_slice& v2) {
03558 return slsl_vv_mult<srvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03559 }
03560
03561 inline cinterval operator*(const scvector_slice& v1, const scivector_slice& v2) {
03562 return slsl_vv_mult<scvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03563 }
03564
03565 inline cinterval operator*(const sivector_slice& v1, const scivector_slice& v2) {
03566 return slsl_vv_mult<sivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
03567 }
03568
03569 inline cinterval operator*(const sivector_slice& v1, const scvector_slice& v2) {
03570 return slsl_vv_mult<sivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
03571 }
03572
03573 inline cinterval operator*(const scvector_slice& v1, const sivector_slice& v2) {
03574 return slsl_vv_mult<scvector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
03575 }
03576
03577 inline scivector operator*(const scivector_slice& v, const real& s) {
03578 return sp_vs_mult<scivector_slice,real,scivector>(v,s);
03579 }
03580
03581 inline scivector operator*(const scivector_slice& v, const complex& s) {
03582 return sp_vs_mult<scivector_slice,complex,scivector>(v,s);
03583 }
03584
03585 inline scivector operator*(const scivector_slice& v, const interval& s) {
03586 return sp_vs_mult<scivector_slice,interval,scivector>(v,s);
03587 }
03588
03589 inline scivector operator*(const scivector_slice& v, const cinterval& s) {
03590 return sp_vs_mult<scivector_slice,cinterval,scivector>(v,s);
03591 }
03592
03593 inline scivector operator*(const srvector_slice& v, const cinterval& s) {
03594 return sp_vs_mult<srvector_slice,cinterval,scivector>(v,s);
03595 }
03596
03597 inline scivector operator*(const scvector_slice& v, const cinterval& s) {
03598 return sp_vs_mult<scvector_slice,cinterval,scivector>(v,s);
03599 }
03600
03601 inline scivector operator*(const sivector_slice& v, const cinterval& s) {
03602 return sp_vs_mult<sivector_slice,cinterval,scivector>(v,s);
03603 }
03604
03605 inline scivector operator*(const scvector_slice& v, const interval& s) {
03606 return sp_vs_mult<scvector_slice,interval,scivector>(v,s);
03607 }
03608
03609 inline scivector operator*(const sivector_slice& v, const complex& s) {
03610 return sp_vs_mult<sivector_slice,complex,scivector>(v,s);
03611 }
03612
03613 inline scivector operator/(const scivector_slice& v, const real& s) {
03614 return sp_vs_div<scivector_slice,real,scivector>(v,s);
03615 }
03616
03617 inline scivector operator/(const scivector_slice& v, const complex& s) {
03618 return sp_vs_div<scivector_slice,complex,scivector>(v,s);
03619 }
03620
03621 inline scivector operator/(const scivector_slice& v, const interval& s) {
03622 return sp_vs_div<scivector_slice,interval,scivector>(v,s);
03623 }
03624
03625 inline scivector operator/(const scivector_slice& v, const cinterval& s) {
03626 return sp_vs_div<scivector_slice,cinterval,scivector>(v,s);
03627 }
03628
03629 inline scivector operator/(const srvector_slice& v, const cinterval& s) {
03630 return sp_vs_div<srvector_slice,cinterval,scivector>(v,s);
03631 }
03632
03633 inline scivector operator/(const scvector_slice& v, const cinterval& s) {
03634 return sp_vs_div<scvector_slice,cinterval,scivector>(v,s);
03635 }
03636
03637 inline scivector operator/(const sivector_slice& v, const cinterval& s) {
03638 return sp_vs_div<sivector_slice,cinterval,scivector>(v,s);
03639 }
03640
03641 inline scivector operator/(const scvector_slice& v, const interval& s) {
03642 return sp_vs_div<scvector_slice,interval,scivector>(v,s);
03643 }
03644
03645 inline scivector operator/(const sivector_slice& v, const complex& s) {
03646 return sp_vs_div<sivector_slice,complex,scivector>(v,s);
03647 }
03648
03649
03650 inline scivector operator*(const real& s, const scivector_slice& v) {
03651 return sp_sv_mult<real,scivector_slice,scivector>(s,v);
03652 }
03653
03654 inline scivector operator*(const complex& s, const scivector_slice& v) {
03655 return sp_sv_mult<complex,scivector_slice,scivector>(s,v);
03656 }
03657
03658 inline scivector operator*(const interval& s, const scivector_slice& v) {
03659 return sp_sv_mult<interval,scivector_slice,scivector>(s,v);
03660 }
03661
03662 inline scivector operator*(const cinterval& s, const scivector_slice& v) {
03663 return sp_sv_mult<cinterval,scivector_slice,scivector>(s,v);
03664 }
03665
03666 inline scivector operator*(const cinterval& s, const srvector_slice& v) {
03667 return sp_sv_mult<cinterval,srvector_slice,scivector>(s,v);
03668 }
03669
03670 inline scivector operator*(const cinterval& s, const scvector_slice& v) {
03671 return sp_sv_mult<cinterval,scvector_slice,scivector>(s,v);
03672 }
03673
03674 inline scivector operator*(const cinterval& s, const sivector_slice& v) {
03675 return sp_sv_mult<cinterval,sivector_slice,scivector>(s,v);
03676 }
03677
03678 inline scivector operator*(const complex& s, const sivector_slice& v) {
03679 return sp_sv_mult<complex,sivector_slice,scivector>(s,v);
03680 }
03681
03682 inline scivector operator*(const interval& s, const scvector_slice& v) {
03683 return sp_sv_mult<interval,scvector_slice,scivector>(s,v);
03684 }
03685
03686 inline civector operator+(const civector& v1, const srvector_slice& v2) {
03687 return fsl_vv_add<civector,srvector_slice,civector>(v1,v2);
03688 }
03689
03690 inline civector operator+(const civector& v1, const scvector_slice& v2) {
03691 return fsl_vv_add<civector,scvector_slice,civector>(v1,v2);
03692 }
03693
03694 inline civector operator+(const civector& v1, const sivector_slice& v2) {
03695 return fsl_vv_add<civector,sivector_slice,civector>(v1,v2);
03696 }
03697
03698 inline civector operator+(const civector& v1, const scivector_slice& v2) {
03699 return fsl_vv_add<civector,scivector_slice,civector>(v1,v2);
03700 }
03701
03702 inline civector operator+(const rvector& v1, const scivector_slice& v2) {
03703 return fsl_vv_add<rvector,scivector_slice,civector>(v1,v2);
03704 }
03705
03706 inline civector operator+(const cvector& v1, const scivector_slice& v2) {
03707 return fsl_vv_add<cvector,scivector_slice,civector>(v1,v2);
03708 }
03709
03710 inline civector operator+(const ivector& v1, const scivector_slice& v2) {
03711 return fsl_vv_add<ivector,scivector_slice,civector>(v1,v2);
03712 }
03713
03714 inline civector operator+(const cvector& v1, const sivector_slice& v2) {
03715 return fsl_vv_add<cvector,sivector_slice,civector>(v1,v2);
03716 }
03717
03718 inline civector operator+(const ivector& v1, const scvector_slice& v2) {
03719 return fsl_vv_add<ivector,scvector_slice,civector>(v1,v2);
03720 }
03721
03722 inline civector operator+(const scivector_slice& v1, const rvector& v2) {
03723 return slf_vv_add<scivector_slice,rvector,civector>(v1,v2);
03724 }
03725
03726 inline civector operator+(const scivector_slice& v1, const cvector& v2) {
03727 return slf_vv_add<scivector_slice,cvector,civector>(v1,v2);
03728 }
03729
03730 inline civector operator+(const scivector_slice& v1, const ivector& v2) {
03731 return slf_vv_add<scivector_slice,ivector,civector>(v1,v2);
03732 }
03733
03734 inline civector operator+(const scivector_slice& v1, const civector& v2) {
03735 return slf_vv_add<scivector_slice,civector,civector>(v1,v2);
03736 }
03737
03738 inline civector operator+(const srvector_slice& v1, const civector& v2) {
03739 return slf_vv_add<srvector_slice,civector,civector>(v1,v2);
03740 }
03741
03742 inline civector operator+(const scvector_slice& v1, const civector& v2) {
03743 return slf_vv_add<scvector_slice,civector,civector>(v1,v2);
03744 }
03745
03746 inline civector operator+(const sivector_slice& v1, const civector& v2) {
03747 return slf_vv_add<sivector_slice,civector,civector>(v1,v2);
03748 }
03749
03750 inline civector operator+(const scvector_slice& v1, const ivector& v2) {
03751 return slf_vv_add<scvector_slice,ivector,civector>(v1,v2);
03752 }
03753
03754 inline civector operator+(const sivector_slice& v1, const cvector& v2) {
03755 return slf_vv_add<sivector_slice,cvector,civector>(v1,v2);
03756 }
03757
03758 inline civector operator+(const civector_slice& v1, const srvector_slice& v2) {
03759 return fsl_vv_add<civector_slice,srvector_slice,civector>(v1,v2);
03760 }
03761
03762 inline civector operator+(const civector_slice& v1, const scvector_slice& v2) {
03763 return fsl_vv_add<civector_slice,scvector_slice,civector>(v1,v2);
03764 }
03765
03766 inline civector operator+(const civector_slice& v1, const sivector_slice& v2) {
03767 return fsl_vv_add<civector_slice,sivector_slice,civector>(v1,v2);
03768 }
03769
03770 inline civector operator+(const civector_slice& v1, const scivector_slice& v2) {
03771 return fsl_vv_add<civector_slice,scivector_slice,civector>(v1,v2);
03772 }
03773
03774 inline civector operator+(const rvector_slice& v1, const scivector_slice& v2) {
03775 return fsl_vv_add<rvector_slice,scivector_slice,civector>(v1,v2);
03776 }
03777
03778 inline civector operator+(const cvector_slice& v1, const scivector_slice& v2) {
03779 return fsl_vv_add<cvector_slice,scivector_slice,civector>(v1,v2);
03780 }
03781
03782 inline civector operator+(const ivector_slice& v1, const scivector_slice& v2) {
03783 return fsl_vv_add<ivector_slice,scivector_slice,civector>(v1,v2);
03784 }
03785
03786 inline civector operator+(const ivector_slice& v1, const scvector_slice& v2) {
03787 return fsl_vv_add<ivector_slice,scvector_slice,civector>(v1,v2);
03788 }
03789
03790 inline civector operator+(const cvector_slice& v1, const sivector_slice& v2) {
03791 return fsl_vv_add<cvector_slice,sivector_slice,civector>(v1,v2);
03792 }
03793
03794 inline civector operator+(const scivector_slice& v1, const rvector_slice& v2) {
03795 return slf_vv_add<scivector_slice,rvector_slice,civector>(v1,v2);
03796 }
03797
03798 inline civector operator+(const scivector_slice& v1, const ivector_slice& v2) {
03799 return slf_vv_add<scivector_slice,ivector_slice,civector>(v1,v2);
03800 }
03801
03802 inline civector operator+(const scivector_slice& v1, const cvector_slice& v2) {
03803 return slf_vv_add<scivector_slice,cvector_slice,civector>(v1,v2);
03804 }
03805
03806 inline civector operator+(const scivector_slice& v1, const civector_slice& v2) {
03807 return slf_vv_add<scivector_slice,civector_slice,civector>(v1,v2);
03808 }
03809
03810 inline civector operator+(const srvector_slice& v1, const civector_slice& v2) {
03811 return slf_vv_add<srvector_slice,civector_slice,civector>(v1,v2);
03812 }
03813
03814 inline civector operator+(const sivector_slice& v1, const civector_slice& v2) {
03815 return slf_vv_add<sivector_slice,civector_slice,civector>(v1,v2);
03816 }
03817
03818 inline civector operator+(const scvector_slice& v1, const civector_slice& v2) {
03819 return slf_vv_add<scvector_slice,civector_slice,civector>(v1,v2);
03820 }
03821
03822 inline civector operator+(const scvector_slice& v1, const ivector_slice& v2) {
03823 return slf_vv_add<scvector_slice,ivector_slice,civector>(v1,v2);
03824 }
03825
03826 inline civector operator+(const sivector_slice& v1, const cvector_slice& v2) {
03827 return slf_vv_add<sivector_slice,cvector_slice,civector>(v1,v2);
03828 }
03829
03830 inline scivector operator+(const scivector_slice& v1, const srvector_slice& v2) {
03831 return slsl_vv_add<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
03832 }
03833
03834 inline scivector operator+(const scivector_slice& v1, const scvector_slice& v2) {
03835 return slsl_vv_add<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
03836 }
03837
03838 inline scivector operator+(const scivector_slice& v1, const sivector_slice& v2) {
03839 return slsl_vv_add<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
03840 }
03841
03842 inline scivector operator+(const scivector_slice& v1, const scivector_slice& v2) {
03843 return slsl_vv_add<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
03844 }
03845
03846 inline scivector operator+(const srvector_slice& v1, const scivector_slice& v2) {
03847 return slsl_vv_add<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
03848 }
03849
03850 inline scivector operator+(const scvector_slice& v1, const scivector_slice& v2) {
03851 return slsl_vv_add<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
03852 }
03853
03854 inline scivector operator+(const sivector_slice& v1, const scivector_slice& v2) {
03855 return slsl_vv_add<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
03856 }
03857
03858 inline scivector operator+(const scvector_slice& v1, const sivector_slice& v2) {
03859 return slsl_vv_add<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
03860 }
03861
03862 inline scivector operator+(const sivector_slice& v1, const scvector_slice& v2) {
03863 return slsl_vv_add<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
03864 }
03865
03866 inline scivector operator+(const scivector& v1, const srvector_slice& v2) {
03867 return spsl_vv_add<scivector,srvector_slice,scivector,cinterval>(v1,v2);
03868 }
03869
03870 inline scivector operator+(const scivector& v1, const scvector_slice& v2) {
03871 return spsl_vv_add<scivector,scvector_slice,scivector,cinterval>(v1,v2);
03872 }
03873
03874 inline scivector operator+(const scivector& v1, const sivector_slice& v2) {
03875 return spsl_vv_add<scivector,sivector_slice,scivector,cinterval>(v1,v2);
03876 }
03877
03878 inline scivector operator+(const scivector& v1, const scivector_slice& v2) {
03879 return spsl_vv_add<scivector,scivector_slice,scivector,cinterval>(v1,v2);
03880 }
03881
03882 inline scivector operator+(const srvector& v1, const scivector_slice& v2) {
03883 return spsl_vv_add<srvector,scivector_slice,scivector,cinterval>(v1,v2);
03884 }
03885
03886 inline scivector operator+(const scvector& v1, const scivector_slice& v2) {
03887 return spsl_vv_add<scvector,scivector_slice,scivector,cinterval>(v1,v2);
03888 }
03889
03890 inline scivector operator+(const sivector& v1, const scivector_slice& v2) {
03891 return spsl_vv_add<sivector,scivector_slice,scivector,cinterval>(v1,v2);
03892 }
03893
03894 inline scivector operator+(const scvector& v1, const sivector_slice& v2) {
03895 return spsl_vv_add<scvector,sivector_slice,scivector,cinterval>(v1,v2);
03896 }
03897
03898 inline scivector operator+(const sivector& v1, const scvector_slice& v2) {
03899 return spsl_vv_add<sivector,scvector_slice,scivector,cinterval>(v1,v2);
03900 }
03901
03902 inline scivector operator+(const scivector_slice& v1, const srvector& v2) {
03903 return slsp_vv_add<scivector_slice,srvector,scivector,cinterval>(v1,v2);
03904 }
03905
03906 inline scivector operator+(const scivector_slice& v1, const scvector& v2) {
03907 return slsp_vv_add<scivector_slice,scvector,scivector,cinterval>(v1,v2);
03908 }
03909
03910 inline scivector operator+(const scivector_slice& v1, const sivector& v2) {
03911 return slsp_vv_add<scivector_slice,sivector,scivector,cinterval>(v1,v2);
03912 }
03913
03914 inline scivector operator+(const scivector_slice& v1, const scivector& v2) {
03915 return slsp_vv_add<scivector_slice,scivector,scivector,cinterval>(v1,v2);
03916 }
03917
03918 inline scivector operator+(const srvector_slice& v1, const scivector& v2) {
03919 return slsp_vv_add<srvector_slice,scivector,scivector,cinterval>(v1,v2);
03920 }
03921
03922 inline scivector operator+(const scvector_slice& v1, const scivector& v2) {
03923 return slsp_vv_add<scvector_slice,scivector,scivector,cinterval>(v1,v2);
03924 }
03925
03926 inline scivector operator+(const sivector_slice& v1, const scivector& v2) {
03927 return slsp_vv_add<sivector_slice,scivector,scivector,cinterval>(v1,v2);
03928 }
03929
03930 inline scivector operator+(const scvector_slice& v1, const sivector& v2) {
03931 return slsp_vv_add<scvector_slice,sivector,scivector,cinterval>(v1,v2);
03932 }
03933
03934 inline scivector operator+(const sivector_slice& v1, const scvector& v2) {
03935 return slsp_vv_add<sivector_slice,scvector,scivector,cinterval>(v1,v2);
03936 }
03937
03938 inline civector operator-(const civector& v1, const srvector_slice& v2) {
03939 return fsl_vv_sub<civector,srvector_slice,civector>(v1,v2);
03940 }
03941
03942 inline civector operator-(const civector& v1, const scvector_slice& v2) {
03943 return fsl_vv_sub<civector,scvector_slice,civector>(v1,v2);
03944 }
03945
03946 inline civector operator-(const civector& v1, const sivector_slice& v2) {
03947 return fsl_vv_sub<civector,sivector_slice,civector>(v1,v2);
03948 }
03949
03950 inline civector operator-(const civector& v1, const scivector_slice& v2) {
03951 return fsl_vv_sub<civector,scivector_slice,civector>(v1,v2);
03952 }
03953
03954 inline civector operator-(const rvector& v1, const scivector_slice& v2) {
03955 return fsl_vv_sub<rvector,scivector_slice,civector>(v1,v2);
03956 }
03957
03958 inline civector operator-(const cvector& v1, const scivector_slice& v2) {
03959 return fsl_vv_sub<cvector,scivector_slice,civector>(v1,v2);
03960 }
03961
03962 inline civector operator-(const ivector& v1, const scivector_slice& v2) {
03963 return fsl_vv_sub<ivector,scivector_slice,civector>(v1,v2);
03964 }
03965
03966 inline civector operator-(const cvector& v1, const sivector_slice& v2) {
03967 return fsl_vv_sub<cvector,sivector_slice,civector>(v1,v2);
03968 }
03969
03970 inline civector operator-(const ivector& v1, const scvector_slice& v2) {
03971 return fsl_vv_sub<ivector,scvector_slice,civector>(v1,v2);
03972 }
03973
03974 inline civector operator-(const scivector_slice& v1, const rvector& v2) {
03975 return slf_vv_sub<scivector_slice,rvector,civector>(v1,v2);
03976 }
03977
03978 inline civector operator-(const scivector_slice& v1, const cvector& v2) {
03979 return slf_vv_sub<scivector_slice,cvector,civector>(v1,v2);
03980 }
03981
03982 inline civector operator-(const scivector_slice& v1, const ivector& v2) {
03983 return slf_vv_sub<scivector_slice,ivector,civector>(v1,v2);
03984 }
03985
03986 inline civector operator-(const scivector_slice& v1, const civector& v2) {
03987 return slf_vv_sub<scivector_slice,civector,civector>(v1,v2);
03988 }
03989
03990 inline civector operator-(const srvector_slice& v1, const civector& v2) {
03991 return slf_vv_sub<srvector_slice,civector,civector>(v1,v2);
03992 }
03993
03994 inline civector operator-(const scvector_slice& v1, const civector& v2) {
03995 return slf_vv_sub<scvector_slice,civector,civector>(v1,v2);
03996 }
03997
03998 inline civector operator-(const sivector_slice& v1, const civector& v2) {
03999 return slf_vv_sub<sivector_slice,civector,civector>(v1,v2);
04000 }
04001
04002 inline civector operator-(const scvector_slice& v1, const ivector& v2) {
04003 return slf_vv_sub<scvector_slice,ivector,civector>(v1,v2);
04004 }
04005
04006 inline civector operator-(const sivector_slice& v1, const cvector& v2) {
04007 return slf_vv_sub<sivector_slice,cvector,civector>(v1,v2);
04008 }
04009
04010 inline civector operator-(const civector_slice& v1, const srvector_slice& v2) {
04011 return fsl_vv_sub<civector_slice,srvector_slice,civector>(v1,v2);
04012 }
04013
04014 inline civector operator-(const civector_slice& v1, const scvector_slice& v2) {
04015 return fsl_vv_sub<civector_slice,scvector_slice,civector>(v1,v2);
04016 }
04017
04018 inline civector operator-(const civector_slice& v1, const sivector_slice& v2) {
04019 return fsl_vv_sub<civector_slice,sivector_slice,civector>(v1,v2);
04020 }
04021
04022 inline civector operator-(const civector_slice& v1, const scivector_slice& v2) {
04023 return fsl_vv_sub<civector_slice,scivector_slice,civector>(v1,v2);
04024 }
04025
04026 inline civector operator-(const rvector_slice& v1, const scivector_slice& v2) {
04027 return fsl_vv_sub<rvector_slice,scivector_slice,civector>(v1,v2);
04028 }
04029
04030 inline civector operator-(const cvector_slice& v1, const scivector_slice& v2) {
04031 return fsl_vv_sub<cvector_slice,scivector_slice,civector>(v1,v2);
04032 }
04033
04034 inline civector operator-(const ivector_slice& v1, const scivector_slice& v2) {
04035 return fsl_vv_sub<ivector_slice,scivector_slice,civector>(v1,v2);
04036 }
04037
04038 inline civector operator-(const ivector_slice& v1, const scvector_slice& v2) {
04039 return fsl_vv_sub<ivector_slice,scvector_slice,civector>(v1,v2);
04040 }
04041
04042 inline civector operator-(const cvector_slice& v1, const sivector_slice& v2) {
04043 return fsl_vv_sub<cvector_slice,sivector_slice,civector>(v1,v2);
04044 }
04045
04046 inline civector operator-(const scivector_slice& v1, const rvector_slice& v2) {
04047 return slf_vv_sub<scivector_slice,rvector_slice,civector>(v1,v2);
04048 }
04049
04050 inline civector operator-(const scivector_slice& v1, const ivector_slice& v2) {
04051 return slf_vv_sub<scivector_slice,ivector_slice,civector>(v1,v2);
04052 }
04053
04054 inline civector operator-(const scivector_slice& v1, const cvector_slice& v2) {
04055 return slf_vv_sub<scivector_slice,cvector_slice,civector>(v1,v2);
04056 }
04057
04058 inline civector operator-(const scivector_slice& v1, const civector_slice& v2) {
04059 return slf_vv_sub<scivector_slice,civector_slice,civector>(v1,v2);
04060 }
04061
04062 inline civector operator-(const srvector_slice& v1, const civector_slice& v2) {
04063 return slf_vv_sub<srvector_slice,civector_slice,civector>(v1,v2);
04064 }
04065
04066 inline civector operator-(const sivector_slice& v1, const civector_slice& v2) {
04067 return slf_vv_sub<sivector_slice,civector_slice,civector>(v1,v2);
04068 }
04069
04070 inline civector operator-(const scvector_slice& v1, const civector_slice& v2) {
04071 return slf_vv_sub<scvector_slice,civector_slice,civector>(v1,v2);
04072 }
04073
04074 inline civector operator-(const scvector_slice& v1, const ivector_slice& v2) {
04075 return slf_vv_sub<scvector_slice,ivector_slice,civector>(v1,v2);
04076 }
04077
04078 inline civector operator-(const sivector_slice& v1, const cvector_slice& v2) {
04079 return slf_vv_sub<sivector_slice,cvector_slice,civector>(v1,v2);
04080 }
04081
04082 inline scivector operator-(const scivector_slice& v1, const srvector_slice& v2) {
04083 return slsl_vv_sub<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
04084 }
04085
04086 inline scivector operator-(const scivector_slice& v1, const scvector_slice& v2) {
04087 return slsl_vv_sub<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
04088 }
04089
04090 inline scivector operator-(const scivector_slice& v1, const sivector_slice& v2) {
04091 return slsl_vv_sub<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
04092 }
04093
04094 inline scivector operator-(const scivector_slice& v1, const scivector_slice& v2) {
04095 return slsl_vv_sub<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04096 }
04097
04098 inline scivector operator-(const srvector_slice& v1, const scivector_slice& v2) {
04099 return slsl_vv_sub<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04100 }
04101
04102 inline scivector operator-(const scvector_slice& v1, const scivector_slice& v2) {
04103 return slsl_vv_sub<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04104 }
04105
04106 inline scivector operator-(const sivector_slice& v1, const scivector_slice& v2) {
04107 return slsl_vv_sub<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04108 }
04109
04110 inline scivector operator-(const scvector_slice& v1, const sivector_slice& v2) {
04111 return slsl_vv_sub<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
04112 }
04113
04114 inline scivector operator-(const sivector_slice& v1, const scvector_slice& v2) {
04115 return slsl_vv_sub<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
04116 }
04117
04118 inline scivector operator-(const scivector& v1, const srvector_slice& v2) {
04119 return spsl_vv_sub<scivector,srvector_slice,scivector,cinterval>(v1,v2);
04120 }
04121
04122 inline scivector operator-(const scivector& v1, const scvector_slice& v2) {
04123 return spsl_vv_sub<scivector,scvector_slice,scivector,cinterval>(v1,v2);
04124 }
04125
04126 inline scivector operator-(const scivector& v1, const sivector_slice& v2) {
04127 return spsl_vv_sub<scivector,sivector_slice,scivector,cinterval>(v1,v2);
04128 }
04129
04130 inline scivector operator-(const scivector& v1, const scivector_slice& v2) {
04131 return spsl_vv_sub<scivector,scivector_slice,scivector,cinterval>(v1,v2);
04132 }
04133
04134 inline scivector operator-(const srvector& v1, const scivector_slice& v2) {
04135 return spsl_vv_sub<srvector,scivector_slice,scivector,cinterval>(v1,v2);
04136 }
04137
04138 inline scivector operator-(const scvector& v1, const scivector_slice& v2) {
04139 return spsl_vv_sub<scvector,scivector_slice,scivector,cinterval>(v1,v2);
04140 }
04141
04142 inline scivector operator-(const sivector& v1, const scivector_slice& v2) {
04143 return spsl_vv_sub<sivector,scivector_slice,scivector,cinterval>(v1,v2);
04144 }
04145
04146 inline scivector operator-(const scvector& v1, const sivector_slice& v2) {
04147 return spsl_vv_sub<scvector,sivector_slice,scivector,cinterval>(v1,v2);
04148 }
04149
04150 inline scivector operator-(const sivector& v1, const scvector_slice& v2) {
04151 return spsl_vv_sub<sivector,scvector_slice,scivector,cinterval>(v1,v2);
04152 }
04153
04154 inline scivector operator-(const scivector_slice& v1, const srvector& v2) {
04155 return slsp_vv_sub<scivector_slice,srvector,scivector,cinterval>(v1,v2);
04156 }
04157
04158 inline scivector operator-(const scivector_slice& v1, const scvector& v2) {
04159 return slsp_vv_sub<scivector_slice,scvector,scivector,cinterval>(v1,v2);
04160 }
04161
04162 inline scivector operator-(const scivector_slice& v1, const sivector& v2) {
04163 return slsp_vv_sub<scivector_slice,sivector,scivector,cinterval>(v1,v2);
04164 }
04165
04166 inline scivector operator-(const scivector_slice& v1, const scivector& v2) {
04167 return slsp_vv_sub<scivector_slice,scivector,scivector,cinterval>(v1,v2);
04168 }
04169
04170 inline scivector operator-(const srvector_slice& v1, const scivector& v2) {
04171 return slsp_vv_sub<srvector_slice,scivector,scivector,cinterval>(v1,v2);
04172 }
04173
04174 inline scivector operator-(const scvector_slice& v1, const scivector& v2) {
04175 return slsp_vv_sub<scvector_slice,scivector,scivector,cinterval>(v1,v2);
04176 }
04177
04178 inline scivector operator-(const sivector_slice& v1, const scivector& v2) {
04179 return slsp_vv_sub<sivector_slice,scivector,scivector,cinterval>(v1,v2);
04180 }
04181
04182 inline scivector operator-(const scvector_slice& v1, const sivector& v2) {
04183 return slsp_vv_sub<scvector_slice,sivector,scivector,cinterval>(v1,v2);
04184 }
04185
04186 inline scivector operator-(const sivector_slice& v1, const scvector& v2) {
04187 return slsp_vv_sub<sivector_slice,scvector,scivector,cinterval>(v1,v2);
04188 }
04189
04190 inline civector operator|(const civector& v1, const srvector_slice& v2) {
04191 return fsl_vv_hull<civector,srvector_slice,civector>(v1,v2);
04192 }
04193
04194 inline civector operator|(const civector& v1, const scvector_slice& v2) {
04195 return fsl_vv_hull<civector,scvector_slice,civector>(v1,v2);
04196 }
04197
04198 inline civector operator|(const civector& v1, const sivector_slice& v2) {
04199 return fsl_vv_hull<civector,sivector_slice,civector>(v1,v2);
04200 }
04201
04202 inline civector operator|(const civector& v1, const scivector_slice& v2) {
04203 return fsl_vv_hull<civector,scivector_slice,civector>(v1,v2);
04204 }
04205
04206 inline civector operator|(const rvector& v1, const scivector_slice& v2) {
04207 return fsl_vv_hull<rvector,scivector_slice,civector>(v1,v2);
04208 }
04209
04210 inline civector operator|(const cvector& v1, const scivector_slice& v2) {
04211 return fsl_vv_hull<cvector,scivector_slice,civector>(v1,v2);
04212 }
04213
04214 inline civector operator|(const ivector& v1, const scivector_slice& v2) {
04215 return fsl_vv_hull<ivector,scivector_slice,civector>(v1,v2);
04216 }
04217
04218 inline civector operator|(const cvector& v1, const sivector_slice& v2) {
04219 return fsl_vv_hull<cvector,sivector_slice,civector>(v1,v2);
04220 }
04221
04222 inline civector operator|(const ivector& v1, const scvector_slice& v2) {
04223 return fsl_vv_hull<ivector,scvector_slice,civector>(v1,v2);
04224 }
04225
04226 inline civector operator|(const scivector_slice& v1, const rvector& v2) {
04227 return slf_vv_hull<scivector_slice,rvector,civector>(v1,v2);
04228 }
04229
04230 inline civector operator|(const scivector_slice& v1, const cvector& v2) {
04231 return slf_vv_hull<scivector_slice,cvector,civector>(v1,v2);
04232 }
04233
04234 inline civector operator|(const scivector_slice& v1, const ivector& v2) {
04235 return slf_vv_hull<scivector_slice,ivector,civector>(v1,v2);
04236 }
04237
04238 inline civector operator|(const scivector_slice& v1, const civector& v2) {
04239 return slf_vv_hull<scivector_slice,civector,civector>(v1,v2);
04240 }
04241
04242 inline civector operator|(const srvector_slice& v1, const civector& v2) {
04243 return slf_vv_hull<srvector_slice,civector,civector>(v1,v2);
04244 }
04245
04246 inline civector operator|(const scvector_slice& v1, const civector& v2) {
04247 return slf_vv_hull<scvector_slice,civector,civector>(v1,v2);
04248 }
04249
04250 inline civector operator|(const sivector_slice& v1, const civector& v2) {
04251 return slf_vv_hull<sivector_slice,civector,civector>(v1,v2);
04252 }
04253
04254 inline civector operator|(const scvector_slice& v1, const ivector& v2) {
04255 return slf_vv_hull<scvector_slice,ivector,civector>(v1,v2);
04256 }
04257
04258 inline civector operator|(const sivector_slice& v1, const cvector& v2) {
04259 return slf_vv_hull<sivector_slice,cvector,civector>(v1,v2);
04260 }
04261
04262 inline civector operator|(const civector_slice& v1, const srvector_slice& v2) {
04263 return fsl_vv_hull<civector_slice,srvector_slice,civector>(v1,v2);
04264 }
04265
04266 inline civector operator|(const civector_slice& v1, const scvector_slice& v2) {
04267 return fsl_vv_hull<civector_slice,scvector_slice,civector>(v1,v2);
04268 }
04269
04270 inline civector operator|(const civector_slice& v1, const sivector_slice& v2) {
04271 return fsl_vv_hull<civector_slice,sivector_slice,civector>(v1,v2);
04272 }
04273
04274 inline civector operator|(const civector_slice& v1, const scivector_slice& v2) {
04275 return fsl_vv_hull<civector_slice,scivector_slice,civector>(v1,v2);
04276 }
04277
04278 inline civector operator|(const rvector_slice& v1, const scivector_slice& v2) {
04279 return fsl_vv_hull<rvector_slice,scivector_slice,civector>(v1,v2);
04280 }
04281
04282 inline civector operator|(const cvector_slice& v1, const scivector_slice& v2) {
04283 return fsl_vv_hull<cvector_slice,scivector_slice,civector>(v1,v2);
04284 }
04285
04286 inline civector operator|(const ivector_slice& v1, const scivector_slice& v2) {
04287 return fsl_vv_hull<ivector_slice,scivector_slice,civector>(v1,v2);
04288 }
04289
04290 inline civector operator|(const ivector_slice& v1, const scvector_slice& v2) {
04291 return fsl_vv_hull<ivector_slice,scvector_slice,civector>(v1,v2);
04292 }
04293
04294 inline civector operator|(const cvector_slice& v1, const sivector_slice& v2) {
04295 return fsl_vv_hull<cvector_slice,sivector_slice,civector>(v1,v2);
04296 }
04297
04298 inline civector operator|(const scivector_slice& v1, const rvector_slice& v2) {
04299 return slf_vv_hull<scivector_slice,rvector_slice,civector>(v1,v2);
04300 }
04301
04302 inline civector operator|(const scivector_slice& v1, const ivector_slice& v2) {
04303 return slf_vv_hull<scivector_slice,ivector_slice,civector>(v1,v2);
04304 }
04305
04306 inline civector operator|(const scivector_slice& v1, const cvector_slice& v2) {
04307 return slf_vv_hull<scivector_slice,cvector_slice,civector>(v1,v2);
04308 }
04309
04310 inline civector operator|(const scivector_slice& v1, const civector_slice& v2) {
04311 return slf_vv_hull<scivector_slice,civector_slice,civector>(v1,v2);
04312 }
04313
04314 inline civector operator|(const srvector_slice& v1, const civector_slice& v2) {
04315 return slf_vv_hull<srvector_slice,civector_slice,civector>(v1,v2);
04316 }
04317
04318 inline civector operator|(const sivector_slice& v1, const civector_slice& v2) {
04319 return slf_vv_hull<sivector_slice,civector_slice,civector>(v1,v2);
04320 }
04321
04322 inline civector operator|(const scvector_slice& v1, const civector_slice& v2) {
04323 return slf_vv_hull<scvector_slice,civector_slice,civector>(v1,v2);
04324 }
04325
04326 inline civector operator|(const scvector_slice& v1, const ivector_slice& v2) {
04327 return slf_vv_hull<scvector_slice,ivector_slice,civector>(v1,v2);
04328 }
04329
04330 inline civector operator|(const sivector_slice& v1, const cvector_slice& v2) {
04331 return slf_vv_hull<sivector_slice,cvector_slice,civector>(v1,v2);
04332 }
04333
04334 inline scivector operator|(const scivector_slice& v1, const srvector_slice& v2) {
04335 return slsl_vv_hull<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
04336 }
04337
04338 inline scivector operator|(const scivector_slice& v1, const scvector_slice& v2) {
04339 return slsl_vv_hull<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
04340 }
04341
04342 inline scivector operator|(const scivector_slice& v1, const sivector_slice& v2) {
04343 return slsl_vv_hull<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
04344 }
04345
04346 inline scivector operator|(const scivector_slice& v1, const scivector_slice& v2) {
04347 return slsl_vv_hull<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04348 }
04349
04350 inline scivector operator|(const srvector_slice& v1, const scivector_slice& v2) {
04351 return slsl_vv_hull<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04352 }
04353
04354 inline scivector operator|(const scvector_slice& v1, const scivector_slice& v2) {
04355 return slsl_vv_hull<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04356 }
04357
04358 inline scivector operator|(const sivector_slice& v1, const scivector_slice& v2) {
04359 return slsl_vv_hull<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04360 }
04361
04362 inline scivector operator|(const scvector_slice& v1, const sivector_slice& v2) {
04363 return slsl_vv_hull<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
04364 }
04365
04366 inline scivector operator|(const sivector_slice& v1, const scvector_slice& v2) {
04367 return slsl_vv_hull<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
04368 }
04369
04370 inline scivector operator|(const scivector& v1, const srvector_slice& v2) {
04371 return spsl_vv_hull<scivector,srvector_slice,scivector,cinterval>(v1,v2);
04372 }
04373
04374 inline scivector operator|(const scivector& v1, const scvector_slice& v2) {
04375 return spsl_vv_hull<scivector,scvector_slice,scivector,cinterval>(v1,v2);
04376 }
04377
04378 inline scivector operator|(const scivector& v1, const sivector_slice& v2) {
04379 return spsl_vv_hull<scivector,sivector_slice,scivector,cinterval>(v1,v2);
04380 }
04381
04382 inline scivector operator|(const scivector& v1, const scivector_slice& v2) {
04383 return spsl_vv_hull<scivector,scivector_slice,scivector,cinterval>(v1,v2);
04384 }
04385
04386 inline scivector operator|(const srvector& v1, const scivector_slice& v2) {
04387 return spsl_vv_hull<srvector,scivector_slice,scivector,cinterval>(v1,v2);
04388 }
04389
04390 inline scivector operator|(const scvector& v1, const scivector_slice& v2) {
04391 return spsl_vv_hull<scvector,scivector_slice,scivector,cinterval>(v1,v2);
04392 }
04393
04394 inline scivector operator|(const sivector& v1, const scivector_slice& v2) {
04395 return spsl_vv_hull<sivector,scivector_slice,scivector,cinterval>(v1,v2);
04396 }
04397
04398 inline scivector operator|(const scvector& v1, const sivector_slice& v2) {
04399 return spsl_vv_hull<scvector,sivector_slice,scivector,cinterval>(v1,v2);
04400 }
04401
04402 inline scivector operator|(const sivector& v1, const scvector_slice& v2) {
04403 return spsl_vv_hull<sivector,scvector_slice,scivector,cinterval>(v1,v2);
04404 }
04405
04406 inline scivector operator|(const scivector_slice& v1, const srvector& v2) {
04407 return slsp_vv_hull<scivector_slice,srvector,scivector,cinterval>(v1,v2);
04408 }
04409
04410 inline scivector operator|(const scivector_slice& v1, const scvector& v2) {
04411 return slsp_vv_hull<scivector_slice,scvector,scivector,cinterval>(v1,v2);
04412 }
04413
04414 inline scivector operator|(const scivector_slice& v1, const sivector& v2) {
04415 return slsp_vv_hull<scivector_slice,sivector,scivector,cinterval>(v1,v2);
04416 }
04417
04418 inline scivector operator|(const scivector_slice& v1, const scivector& v2) {
04419 return slsp_vv_hull<scivector_slice,scivector,scivector,cinterval>(v1,v2);
04420 }
04421
04422 inline scivector operator|(const srvector_slice& v1, const scivector& v2) {
04423 return slsp_vv_hull<srvector_slice,scivector,scivector,cinterval>(v1,v2);
04424 }
04425
04426 inline scivector operator|(const scvector_slice& v1, const scivector& v2) {
04427 return slsp_vv_hull<scvector_slice,scivector,scivector,cinterval>(v1,v2);
04428 }
04429
04430 inline scivector operator|(const sivector_slice& v1, const scivector& v2) {
04431 return slsp_vv_hull<sivector_slice,scivector,scivector,cinterval>(v1,v2);
04432 }
04433
04434 inline scivector operator|(const scvector_slice& v1, const sivector& v2) {
04435 return slsp_vv_hull<scvector_slice,sivector,scivector,cinterval>(v1,v2);
04436 }
04437
04438 inline scivector operator|(const sivector_slice& v1, const scvector& v2) {
04439 return slsp_vv_hull<sivector_slice,scvector,scivector,cinterval>(v1,v2);
04440 }
04441
04442 inline civector operator&(const civector& v1, const sivector_slice& v2) {
04443 return fsl_vv_intersect<civector,sivector_slice,civector>(v1,v2);
04444 }
04445
04446 inline civector operator&(const civector& v1, const scivector_slice& v2) {
04447 return fsl_vv_intersect<civector,scivector_slice,civector>(v1,v2);
04448 }
04449
04450 inline civector operator&(const ivector& v1, const scivector_slice& v2) {
04451 return fsl_vv_intersect<ivector,scivector_slice,civector>(v1,v2);
04452 }
04453
04454 inline civector operator&(const scivector_slice& v1, const ivector& v2) {
04455 return slf_vv_intersect<scivector_slice,ivector,civector>(v1,v2);
04456 }
04457
04458 inline civector operator&(const scivector_slice& v1, const civector& v2) {
04459 return slf_vv_intersect<scivector_slice,civector,civector>(v1,v2);
04460 }
04461
04462 inline civector operator&(const sivector_slice& v1, const civector& v2) {
04463 return slf_vv_intersect<sivector_slice,civector,civector>(v1,v2);
04464 }
04465
04466 inline civector operator&(const civector_slice& v1, const sivector_slice& v2) {
04467 return fsl_vv_intersect<civector_slice,sivector_slice,civector>(v1,v2);
04468 }
04469
04470 inline civector operator&(const civector_slice& v1, const scivector_slice& v2) {
04471 return fsl_vv_intersect<civector_slice,scivector_slice,civector>(v1,v2);
04472 }
04473
04474 inline civector operator&(const ivector_slice& v1, const scivector_slice& v2) {
04475 return fsl_vv_intersect<ivector_slice,scivector_slice,civector>(v1,v2);
04476 }
04477
04478 inline civector operator&(const scivector_slice& v1, const ivector_slice& v2) {
04479 return slf_vv_intersect<scivector_slice,ivector_slice,civector>(v1,v2);
04480 }
04481
04482 inline civector operator&(const scivector_slice& v1, const civector_slice& v2) {
04483 return slf_vv_intersect<scivector_slice,civector_slice,civector>(v1,v2);
04484 }
04485
04486 inline civector operator&(const sivector_slice& v1, const civector_slice& v2) {
04487 return slf_vv_intersect<sivector_slice,civector_slice,civector>(v1,v2);
04488 }
04489
04490 inline scivector operator&(const scivector_slice& v1, const sivector_slice& v2) {
04491 return slsl_vv_intersect<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
04492 }
04493
04494 inline scivector operator&(const scivector_slice& v1, const scivector_slice& v2) {
04495 return slsl_vv_intersect<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04496 }
04497
04498 inline scivector operator&(const sivector_slice& v1, const scivector_slice& v2) {
04499 return slsl_vv_intersect<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
04500 }
04501
04502 inline scivector operator&(const scivector& v1, const sivector_slice& v2) {
04503 return spsl_vv_intersect<scivector,sivector_slice,scivector,cinterval>(v1,v2);
04504 }
04505
04506 inline scivector operator&(const scivector& v1, const scivector_slice& v2) {
04507 return spsl_vv_intersect<scivector,scivector_slice,scivector,cinterval>(v1,v2);
04508 }
04509
04510 inline scivector operator&(const sivector& v1, const scivector_slice& v2) {
04511 return spsl_vv_intersect<sivector,scivector_slice,scivector,cinterval>(v1,v2);
04512 }
04513
04514 inline scivector operator&(const scivector_slice& v1, const sivector& v2) {
04515 return slsp_vv_intersect<scivector_slice,sivector,scivector,cinterval>(v1,v2);
04516 }
04517
04518 inline scivector operator&(const scivector_slice& v1, const scivector& v2) {
04519 return slsp_vv_intersect<scivector_slice,scivector,scivector,cinterval>(v1,v2);
04520 }
04521
04522 inline scivector operator&(const sivector_slice& v1, const scivector& v2) {
04523 return slsp_vv_intersect<sivector_slice,scivector,scivector,cinterval>(v1,v2);
04524 }
04525
04526 inline civector& civector::operator+=(const srvector_slice& v2) {
04527 return fsl_vv_addassign(*this,v2);
04528 }
04529
04530 inline civector& civector::operator+=(const scvector_slice& v2) {
04531 return fsl_vv_addassign(*this,v2);
04532 }
04533
04534 inline civector& civector::operator+=(const sivector_slice& v2) {
04535 return fsl_vv_addassign(*this,v2);
04536 }
04537
04538 inline civector& civector::operator+=(const scivector_slice& v2) {
04539 return fsl_vv_addassign(*this,v2);
04540 }
04541
04542 inline civector_slice& civector_slice::operator+=(const srvector_slice& v2) {
04543 return fsl_vv_addassign(*this,v2);
04544 }
04545
04546 inline civector_slice& civector_slice::operator+=(const scvector_slice& v2) {
04547 return fsl_vv_addassign(*this,v2);
04548 }
04549
04550 inline civector_slice& civector_slice::operator+=(const sivector_slice& v2) {
04551 return fsl_vv_addassign(*this,v2);
04552 }
04553
04554 inline civector_slice& civector_slice::operator+=(const scivector_slice& v2) {
04555 return fsl_vv_addassign(*this,v2);
04556 }
04557
04558 inline scivector& scivector::operator+=(const srvector_slice& v2) {
04559 return spsl_vv_addassign(*this,v2);
04560 }
04561
04562 inline scivector& scivector::operator+=(const scvector_slice& v2) {
04563 return spsl_vv_addassign(*this,v2);
04564 }
04565
04566 inline scivector& scivector::operator+=(const sivector_slice& v2) {
04567 return spsl_vv_addassign(*this,v2);
04568 }
04569
04570 inline scivector& scivector::operator+=(const scivector_slice& v2) {
04571 return spsl_vv_addassign(*this,v2);
04572 }
04573
04574 inline civector& civector::operator-=(const srvector_slice& v2) {
04575 return fsl_vv_subassign(*this,v2);
04576 }
04577
04578 inline civector& civector::operator-=(const scvector_slice& v2) {
04579 return fsl_vv_subassign(*this,v2);
04580 }
04581
04582 inline civector& civector::operator-=(const sivector_slice& v2) {
04583 return fsl_vv_subassign(*this,v2);
04584 }
04585
04586 inline civector& civector::operator-=(const scivector_slice& v2) {
04587 return fsl_vv_subassign(*this,v2);
04588 }
04589
04590 inline civector_slice& civector_slice::operator-=(const srvector_slice& v2) {
04591 return fsl_vv_subassign(*this,v2);
04592 }
04593
04594 inline civector_slice& civector_slice::operator-=(const scvector_slice& v2) {
04595 return fsl_vv_subassign(*this,v2);
04596 }
04597
04598 inline civector_slice& civector_slice::operator-=(const sivector_slice& v2) {
04599 return fsl_vv_subassign(*this,v2);
04600 }
04601
04602 inline civector_slice& civector_slice::operator-=(const scivector_slice& v2) {
04603 return fsl_vv_subassign(*this,v2);
04604 }
04605
04606 inline scivector& scivector::operator-=(const srvector_slice& v2) {
04607 return spsl_vv_subassign(*this,v2);
04608 }
04609
04610 inline scivector& scivector::operator-=(const scvector_slice& v2) {
04611 return spsl_vv_subassign(*this,v2);
04612 }
04613
04614 inline scivector& scivector::operator-=(const sivector_slice& v2) {
04615 return spsl_vv_subassign(*this,v2);
04616 }
04617
04618 inline scivector& scivector::operator-=(const scivector_slice& v2) {
04619 return spsl_vv_subassign(*this,v2);
04620 }
04621
04622 inline civector& civector::operator|=(const srvector_slice& v2) {
04623 return fsl_vv_hullassign(*this,v2);
04624 }
04625
04626 inline civector& civector::operator|=(const scvector_slice& v2) {
04627 return fsl_vv_hullassign(*this,v2);
04628 }
04629
04630 inline civector& civector::operator|=(const sivector_slice& v2) {
04631 return fsl_vv_hullassign(*this,v2);
04632 }
04633
04634 inline civector& civector::operator|=(const scivector_slice& v2) {
04635 return fsl_vv_hullassign(*this,v2);
04636 }
04637
04638 inline civector_slice& civector_slice::operator|=(const srvector_slice& v2) {
04639 return fsl_vv_hullassign(*this,v2);
04640 }
04641
04642 inline civector_slice& civector_slice::operator|=(const scvector_slice& v2) {
04643 return fsl_vv_hullassign(*this,v2);
04644 }
04645
04646 inline civector_slice& civector_slice::operator|=(const sivector_slice& v2) {
04647 return fsl_vv_hullassign(*this,v2);
04648 }
04649
04650 inline civector_slice& civector_slice::operator|=(const scivector_slice& v2) {
04651 return fsl_vv_hullassign(*this,v2);
04652 }
04653
04654 inline scivector& scivector::operator|=(const srvector_slice& v2) {
04655 return spsl_vv_hullassign(*this,v2);
04656 }
04657
04658 inline scivector& scivector::operator|=(const scvector_slice& v2) {
04659 return spsl_vv_hullassign(*this,v2);
04660 }
04661
04662 inline scivector& scivector::operator|=(const sivector_slice& v2) {
04663 return spsl_vv_hullassign(*this,v2);
04664 }
04665
04666 inline scivector& scivector::operator|=(const scivector_slice& v2) {
04667 return spsl_vv_hullassign(*this,v2);
04668 }
04669
04670 inline civector& civector::operator&=(const sivector_slice& v2) {
04671 return fsl_vv_intersectassign(*this,v2);
04672 }
04673
04674 inline civector& civector::operator&=(const scivector_slice& v2) {
04675 return fsl_vv_intersectassign(*this,v2);
04676 }
04677
04678 inline civector_slice& civector_slice::operator&=(const sivector_slice& v2) {
04679 return fsl_vv_intersectassign(*this,v2);
04680 }
04681
04682 inline civector_slice& civector_slice::operator&=(const scivector_slice& v2) {
04683 return fsl_vv_intersectassign(*this,v2);
04684 }
04685
04686 inline scivector& scivector::operator&=(const sivector_slice& v2) {
04687 return spsl_vv_intersectassign(*this,v2);
04688 }
04689
04690 inline scivector& scivector::operator&=(const scivector_slice& v2) {
04691 return spsl_vv_intersectassign(*this,v2);
04692 }
04693
04694 inline bool operator==(const scivector_slice& v1, const srvector_slice& v2) {
04695 return slsl_vv_comp(v1,v2);
04696 }
04697
04698 inline bool operator==(const scivector_slice& v1, const scvector_slice& v2) {
04699 return slsl_vv_comp(v1,v2);
04700 }
04701
04702 inline bool operator==(const scivector_slice& v1, const sivector_slice& v2) {
04703 return slsl_vv_comp(v1,v2);
04704 }
04705
04706 inline bool operator==(const scivector_slice& v1, const scivector_slice& v2) {
04707 return slsl_vv_comp(v1,v2);
04708 }
04709
04710 inline bool operator==(const srvector_slice& v1, const scivector_slice& v2) {
04711 return slsl_vv_comp(v1,v2);
04712 }
04713
04714 inline bool operator==(const scvector_slice& v1, const scivector_slice& v2) {
04715 return slsl_vv_comp(v1,v2);
04716 }
04717
04718 inline bool operator==(const sivector_slice& v1, const scivector_slice& v2) {
04719 return slsl_vv_comp(v1,v2);
04720 }
04721
04722 inline bool operator==(const scivector_slice& v1, const srvector& v2) {
04723 return slsp_vv_comp(v1,v2);
04724 }
04725
04726 inline bool operator==(const scivector_slice& v1, const scvector& v2) {
04727 return slsp_vv_comp(v1,v2);
04728 }
04729
04730 inline bool operator==(const scivector_slice& v1, const sivector& v2) {
04731 return slsp_vv_comp(v1,v2);
04732 }
04733
04734 inline bool operator==(const scivector_slice& v1, const scivector& v2) {
04735 return slsp_vv_comp(v1,v2);
04736 }
04737
04738 inline bool operator==(const srvector_slice& v1, const scivector& v2) {
04739 return slsp_vv_comp(v1,v2);
04740 }
04741
04742 inline bool operator==(const scvector_slice& v1, const scivector& v2) {
04743 return slsp_vv_comp(v1,v2);
04744 }
04745
04746 inline bool operator==(const sivector_slice& v1, const scivector& v2) {
04747 return slsp_vv_comp(v1,v2);
04748 }
04749
04750 inline bool operator==(const scivector& v1, const srvector_slice& v2) {
04751 return spsl_vv_comp(v1,v2);
04752 }
04753
04754 inline bool operator==(const scivector& v1, const scvector_slice& v2) {
04755 return spsl_vv_comp(v1,v2);
04756 }
04757
04758 inline bool operator==(const scivector& v1, const sivector_slice& v2) {
04759 return spsl_vv_comp(v1,v2);
04760 }
04761
04762 inline bool operator==(const scivector& v1, const scivector_slice& v2) {
04763 return spsl_vv_comp(v1,v2);
04764 }
04765
04766 inline bool operator==(const srvector& v1, const scivector_slice& v2) {
04767 return spsl_vv_comp(v1,v2);
04768 }
04769
04770 inline bool operator==(const scvector& v1, const scivector_slice& v2) {
04771 return spsl_vv_comp(v1,v2);
04772 }
04773
04774 inline bool operator==(const sivector& v1, const scivector_slice& v2) {
04775 return spsl_vv_comp(v1,v2);
04776 }
04777
04778 inline bool operator==(const scivector_slice& v1, const rvector& v2) {
04779 return slf_vv_comp(v1,v2);
04780 }
04781
04782 inline bool operator==(const scivector_slice& v1, const cvector& v2) {
04783 return slf_vv_comp(v1,v2);
04784 }
04785
04786 inline bool operator==(const scivector_slice& v1, const ivector& v2) {
04787 return slf_vv_comp(v1,v2);
04788 }
04789
04790 inline bool operator==(const scivector_slice& v1, const civector& v2) {
04791 return slf_vv_comp(v1,v2);
04792 }
04793
04794 inline bool operator==(const srvector_slice& v1, const civector& v2) {
04795 return slf_vv_comp(v1,v2);
04796 }
04797
04798 inline bool operator==(const sivector_slice& v1, const civector& v2) {
04799 return slf_vv_comp(v1,v2);
04800 }
04801
04802 inline bool operator==(const scvector_slice& v1, const civector& v2) {
04803 return slf_vv_comp(v1,v2);
04804 }
04805
04806 inline bool operator==(const civector& v1, const srvector_slice& v2) {
04807 return fsl_vv_comp(v1,v2);
04808 }
04809
04810 inline bool operator==(const civector& v1, const scvector_slice& v2) {
04811 return fsl_vv_comp(v1,v2);
04812 }
04813
04814 inline bool operator==(const civector& v1, const sivector_slice& v2) {
04815 return fsl_vv_comp(v1,v2);
04816 }
04817
04818 inline bool operator==(const civector& v1, const scivector_slice& v2) {
04819 return fsl_vv_comp(v1,v2);
04820 }
04821
04822 inline bool operator==(const rvector& v1, const scivector_slice& v2) {
04823 return fsl_vv_comp(v1,v2);
04824 }
04825
04826 inline bool operator==(const cvector& v1, const scivector_slice& v2) {
04827 return fsl_vv_comp(v1,v2);
04828 }
04829
04830 inline bool operator==(const ivector& v1, const scivector_slice& v2) {
04831 return fsl_vv_comp(v1,v2);
04832 }
04833
04834 inline bool operator==(const scivector_slice& v1, const rvector_slice& v2) {
04835 return slf_vv_comp(v1,v2);
04836 }
04837
04838 inline bool operator==(const scivector_slice& v1, const ivector_slice& v2) {
04839 return slf_vv_comp(v1,v2);
04840 }
04841
04842 inline bool operator==(const scivector_slice& v1, const cvector_slice& v2) {
04843 return slf_vv_comp(v1,v2);
04844 }
04845
04846 inline bool operator==(const scivector_slice& v1, const civector_slice& v2) {
04847 return slf_vv_comp(v1,v2);
04848 }
04849
04850 inline bool operator==(const srvector_slice& v1, const civector_slice& v2) {
04851 return slf_vv_comp(v1,v2);
04852 }
04853
04854 inline bool operator==(const sivector_slice& v1, const civector_slice& v2) {
04855 return slf_vv_comp(v1,v2);
04856 }
04857
04858 inline bool operator==(const scvector_slice& v1, const civector_slice& v2) {
04859 return slf_vv_comp(v1,v2);
04860 }
04861
04862 inline bool operator==(const civector_slice& v1, const srvector_slice& v2) {
04863 return fsl_vv_comp(v1,v2);
04864 }
04865
04866 inline bool operator==(const civector_slice& v1, const scvector_slice& v2) {
04867 return fsl_vv_comp(v1,v2);
04868 }
04869
04870 inline bool operator==(const civector_slice& v1, const sivector_slice& v2) {
04871 return fsl_vv_comp(v1,v2);
04872 }
04873
04874 inline bool operator==(const civector_slice& v1, const scivector_slice& v2) {
04875 return fsl_vv_comp(v1,v2);
04876 }
04877
04878 inline bool operator==(const rvector_slice& v1, const scivector_slice& v2) {
04879 return fsl_vv_comp(v1,v2);
04880 }
04881
04882 inline bool operator==(const cvector_slice& v1, const scivector_slice& v2) {
04883 return fsl_vv_comp(v1,v2);
04884 }
04885
04886 inline bool operator==(const ivector_slice& v1, const scivector_slice& v2) {
04887 return fsl_vv_comp(v1,v2);
04888 }
04889
04890 inline bool operator!=(const scivector_slice& v1, const srvector_slice& v2) {
04891 return !slsl_vv_comp(v1,v2);
04892 }
04893
04894 inline bool operator!=(const scivector_slice& v1, const scvector_slice& v2) {
04895 return !slsl_vv_comp(v1,v2);
04896 }
04897
04898 inline bool operator!=(const scivector_slice& v1, const sivector_slice& v2) {
04899 return !slsl_vv_comp(v1,v2);
04900 }
04901
04902 inline bool operator!=(const scivector_slice& v1, const scivector_slice& v2) {
04903 return !slsl_vv_comp(v1,v2);
04904 }
04905
04906 inline bool operator!=(const srvector_slice& v1, const scivector_slice& v2) {
04907 return !slsl_vv_comp(v1,v2);
04908 }
04909
04910 inline bool operator!=(const scvector_slice& v1, const scivector_slice& v2) {
04911 return !slsl_vv_comp(v1,v2);
04912 }
04913
04914 inline bool operator!=(const sivector_slice& v1, const scivector_slice& v2) {
04915 return !slsl_vv_comp(v1,v2);
04916 }
04917
04918 inline bool operator!=(const scivector_slice& v1, const srvector& v2) {
04919 return !slsp_vv_comp(v1,v2);
04920 }
04921
04922 inline bool operator!=(const scivector_slice& v1, const scvector& v2) {
04923 return !slsp_vv_comp(v1,v2);
04924 }
04925
04926 inline bool operator!=(const scivector_slice& v1, const sivector& v2) {
04927 return !slsp_vv_comp(v1,v2);
04928 }
04929
04930 inline bool operator!=(const scivector_slice& v1, const scivector& v2) {
04931 return !slsp_vv_comp(v1,v2);
04932 }
04933
04934 inline bool operator!=(const srvector_slice& v1, const scivector& v2) {
04935 return !slsp_vv_comp(v1,v2);
04936 }
04937
04938 inline bool operator!=(const scvector_slice& v1, const scivector& v2) {
04939 return !slsp_vv_comp(v1,v2);
04940 }
04941
04942 inline bool operator!=(const sivector_slice& v1, const scivector& v2) {
04943 return !slsp_vv_comp(v1,v2);
04944 }
04945
04946 inline bool operator!=(const scivector& v1, const srvector_slice& v2) {
04947 return !spsl_vv_comp(v1,v2);
04948 }
04949
04950 inline bool operator!=(const scivector& v1, const scvector_slice& v2) {
04951 return !spsl_vv_comp(v1,v2);
04952 }
04953
04954 inline bool operator!=(const scivector& v1, const sivector_slice& v2) {
04955 return !spsl_vv_comp(v1,v2);
04956 }
04957
04958 inline bool operator!=(const scivector& v1, const scivector_slice& v2) {
04959 return !spsl_vv_comp(v1,v2);
04960 }
04961
04962 inline bool operator!=(const srvector& v1, const scivector_slice& v2) {
04963 return !spsl_vv_comp(v1,v2);
04964 }
04965
04966 inline bool operator!=(const scvector& v1, const scivector_slice& v2) {
04967 return !spsl_vv_comp(v1,v2);
04968 }
04969
04970 inline bool operator!=(const sivector& v1, const scivector_slice& v2) {
04971 return !spsl_vv_comp(v1,v2);
04972 }
04973
04974 inline bool operator!=(const scivector_slice& v1, const rvector& v2) {
04975 return !slf_vv_comp(v1,v2);
04976 }
04977
04978 inline bool operator!=(const scivector_slice& v1, const cvector& v2) {
04979 return !slf_vv_comp(v1,v2);
04980 }
04981
04982 inline bool operator!=(const scivector_slice& v1, const ivector& v2) {
04983 return !slf_vv_comp(v1,v2);
04984 }
04985
04986 inline bool operator!=(const scivector_slice& v1, const civector& v2) {
04987 return !slf_vv_comp(v1,v2);
04988 }
04989
04990 inline bool operator!=(const srvector_slice& v1, const civector& v2) {
04991 return !slf_vv_comp(v1,v2);
04992 }
04993
04994 inline bool operator!=(const sivector_slice& v1, const civector& v2) {
04995 return !slf_vv_comp(v1,v2);
04996 }
04997
04998 inline bool operator!=(const scvector_slice& v1, const civector& v2) {
04999 return !slf_vv_comp(v1,v2);
05000 }
05001
05002 inline bool operator!=(const civector& v1, const srvector_slice& v2) {
05003 return !fsl_vv_comp(v1,v2);
05004 }
05005
05006 inline bool operator!=(const civector& v1, const scvector_slice& v2) {
05007 return !fsl_vv_comp(v1,v2);
05008 }
05009
05010 inline bool operator!=(const civector& v1, const sivector_slice& v2) {
05011 return !fsl_vv_comp(v1,v2);
05012 }
05013
05014 inline bool operator!=(const civector& v1, const scivector_slice& v2) {
05015 return !fsl_vv_comp(v1,v2);
05016 }
05017
05018 inline bool operator!=(const rvector& v1, const scivector_slice& v2) {
05019 return !fsl_vv_comp(v1,v2);
05020 }
05021
05022 inline bool operator!=(const cvector& v1, const scivector_slice& v2) {
05023 return !fsl_vv_comp(v1,v2);
05024 }
05025
05026 inline bool operator!=(const ivector& v1, const scivector_slice& v2) {
05027 return !fsl_vv_comp(v1,v2);
05028 }
05029
05030 inline bool operator!=(const scivector_slice& v1, const rvector_slice& v2) {
05031 return !slf_vv_comp(v1,v2);
05032 }
05033
05034 inline bool operator!=(const scivector_slice& v1, const ivector_slice& v2) {
05035 return !slf_vv_comp(v1,v2);
05036 }
05037
05038 inline bool operator!=(const scivector_slice& v1, const cvector_slice& v2) {
05039 return !slf_vv_comp(v1,v2);
05040 }
05041
05042 inline bool operator!=(const scivector_slice& v1, const civector_slice& v2) {
05043 return !slf_vv_comp(v1,v2);
05044 }
05045
05046 inline bool operator!=(const srvector_slice& v1, const civector_slice& v2) {
05047 return !slf_vv_comp(v1,v2);
05048 }
05049
05050 inline bool operator!=(const sivector_slice& v1, const civector_slice& v2) {
05051 return !slf_vv_comp(v1,v2);
05052 }
05053
05054 inline bool operator!=(const scvector_slice& v1, const civector_slice& v2) {
05055 return !slf_vv_comp(v1,v2);
05056 }
05057
05058 inline bool operator!=(const civector_slice& v1, const srvector_slice& v2) {
05059 return !fsl_vv_comp(v1,v2);
05060 }
05061
05062 inline bool operator!=(const civector_slice& v1, const scvector_slice& v2) {
05063 return !fsl_vv_comp(v1,v2);
05064 }
05065
05066 inline bool operator!=(const civector_slice& v1, const sivector_slice& v2) {
05067 return !fsl_vv_comp(v1,v2);
05068 }
05069
05070 inline bool operator!=(const civector_slice& v1, const scivector_slice& v2) {
05071 return !fsl_vv_comp(v1,v2);
05072 }
05073
05074 inline bool operator!=(const rvector_slice& v1, const scivector_slice& v2) {
05075 return !fsl_vv_comp(v1,v2);
05076 }
05077
05078 inline bool operator!=(const cvector_slice& v1, const scivector_slice& v2) {
05079 return !fsl_vv_comp(v1,v2);
05080 }
05081
05082 inline bool operator!=(const ivector_slice& v1, const scivector_slice& v2) {
05083 return !fsl_vv_comp(v1,v2);
05084 }
05085
05086 inline bool operator<(const scivector_slice& v1, const sivector_slice& v2) {
05087 return slsl_vv_less<scivector_slice,sivector_slice,cinterval>(v1,v2);
05088 }
05089
05090 inline bool operator<(const scivector_slice& v1, const scivector_slice& v2) {
05091 return slsl_vv_less<scivector_slice,scivector_slice,cinterval>(v1,v2);
05092 }
05093
05094 inline bool operator<(const srvector_slice& v1, const scivector_slice& v2) {
05095 return slsl_vv_less<srvector_slice,scivector_slice,cinterval>(v1,v2);
05096 }
05097
05098 inline bool operator<(const scvector_slice& v1, const scivector_slice& v2) {
05099 return slsl_vv_less<scvector_slice,scivector_slice,cinterval>(v1,v2);
05100 }
05101
05102 inline bool operator<(const sivector_slice& v1, const scivector_slice& v2) {
05103 return slsl_vv_less<sivector_slice,scivector_slice,cinterval>(v1,v2);
05104 }
05105
05106 inline bool operator<(const scivector_slice& v1, const sivector& v2) {
05107 return slsp_vv_less<scivector_slice,sivector,cinterval>(v1,v2);
05108 }
05109
05110 inline bool operator<(const scivector_slice& v1, const scivector& v2) {
05111 return slsp_vv_less<scivector_slice,scivector,cinterval>(v1,v2);
05112 }
05113
05114 inline bool operator<(const srvector_slice& v1, const scivector& v2) {
05115 return slsp_vv_less<srvector_slice,scivector,cinterval>(v1,v2);
05116 }
05117
05118 inline bool operator<(const scvector_slice& v1, const scivector& v2) {
05119 return slsp_vv_less<scvector_slice,scivector,cinterval>(v1,v2);
05120 }
05121
05122 inline bool operator<(const sivector_slice& v1, const scivector& v2) {
05123 return slsp_vv_less<sivector_slice,scivector,cinterval>(v1,v2);
05124 }
05125
05126 inline bool operator<(const scivector& v1, const sivector_slice& v2) {
05127 return spsl_vv_less<scivector,sivector_slice,cinterval>(v1,v2);
05128 }
05129
05130 inline bool operator<(const scivector& v1, const scivector_slice& v2) {
05131 return spsl_vv_less<scivector,scivector_slice,cinterval>(v1,v2);
05132 }
05133
05134 inline bool operator<(const srvector& v1, const scivector_slice& v2) {
05135 return spsl_vv_less<srvector,scivector_slice,cinterval>(v1,v2);
05136 }
05137
05138 inline bool operator<(const scvector& v1, const scivector_slice& v2) {
05139 return spsl_vv_less<scvector,scivector_slice,cinterval>(v1,v2);
05140 }
05141
05142 inline bool operator<(const sivector& v1, const scivector_slice& v2) {
05143 return spsl_vv_less<sivector,scivector_slice,cinterval>(v1,v2);
05144 }
05145
05146 inline bool operator<(const scivector_slice& v1, const ivector& v2) {
05147 return slf_vv_less<scivector_slice,ivector,cinterval>(v1,v2);
05148 }
05149
05150 inline bool operator<(const scivector_slice& v1, const civector& v2) {
05151 return slf_vv_less<scivector_slice,civector,cinterval>(v1,v2);
05152 }
05153
05154 inline bool operator<(const srvector_slice& v1, const civector& v2) {
05155 return slf_vv_less<srvector_slice,civector,cinterval>(v1,v2);
05156 }
05157
05158 inline bool operator<(const sivector_slice& v1, const civector& v2) {
05159 return slf_vv_less<sivector_slice,civector,cinterval>(v1,v2);
05160 }
05161
05162 inline bool operator<(const scvector_slice& v1, const civector& v2) {
05163 return slf_vv_less<scvector_slice,civector,cinterval>(v1,v2);
05164 }
05165
05166 inline bool operator<(const civector& v1, const sivector_slice& v2) {
05167 return fsl_vv_less<civector,sivector_slice,cinterval>(v1,v2);
05168 }
05169
05170 inline bool operator<(const civector& v1, const scivector_slice& v2) {
05171 return fsl_vv_less<civector,scivector_slice,cinterval>(v1,v2);
05172 }
05173
05174 inline bool operator<(const rvector& v1, const scivector_slice& v2) {
05175 return fsl_vv_less<rvector,scivector_slice,cinterval>(v1,v2);
05176 }
05177
05178 inline bool operator<(const cvector& v1, const scivector_slice& v2) {
05179 return fsl_vv_less<cvector,scivector_slice,cinterval>(v1,v2);
05180 }
05181
05182 inline bool operator<(const ivector& v1, const scivector_slice& v2) {
05183 return fsl_vv_less<ivector,scivector_slice,cinterval>(v1,v2);
05184 }
05185
05186 inline bool operator<=(const scivector_slice& v1, const sivector_slice& v2) {
05187 return slsl_vv_leq<scivector_slice,sivector_slice,cinterval>(v1,v2);
05188 }
05189
05190 inline bool operator<=(const scivector_slice& v1, const scivector_slice& v2) {
05191 return slsl_vv_leq<scivector_slice,scivector_slice,cinterval>(v1,v2);
05192 }
05193
05194 inline bool operator<=(const srvector_slice& v1, const scivector_slice& v2) {
05195 return slsl_vv_leq<srvector_slice,scivector_slice,cinterval>(v1,v2);
05196 }
05197
05198 inline bool operator<=(const scvector_slice& v1, const scivector_slice& v2) {
05199 return slsl_vv_leq<scvector_slice,scivector_slice,cinterval>(v1,v2);
05200 }
05201
05202 inline bool operator<=(const sivector_slice& v1, const scivector_slice& v2) {
05203 return slsl_vv_leq<sivector_slice,scivector_slice,cinterval>(v1,v2);
05204 }
05205
05206 inline bool operator<=(const scivector_slice& v1, const sivector& v2) {
05207 return slsp_vv_leq<scivector_slice,sivector,cinterval>(v1,v2);
05208 }
05209
05210 inline bool operator<=(const scivector_slice& v1, const scivector& v2) {
05211 return slsp_vv_leq<scivector_slice,scivector,cinterval>(v1,v2);
05212 }
05213
05214 inline bool operator<=(const srvector_slice& v1, const scivector& v2) {
05215 return slsp_vv_leq<srvector_slice,scivector,cinterval>(v1,v2);
05216 }
05217
05218 inline bool operator<=(const scvector_slice& v1, const scivector& v2) {
05219 return slsp_vv_leq<scvector_slice,scivector,cinterval>(v1,v2);
05220 }
05221
05222 inline bool operator<=(const sivector_slice& v1, const scivector& v2) {
05223 return slsp_vv_leq<sivector_slice,scivector,cinterval>(v1,v2);
05224 }
05225
05226 inline bool operator<=(const scivector& v1, const sivector_slice& v2) {
05227 return spsl_vv_leq<scivector,sivector_slice,cinterval>(v1,v2);
05228 }
05229
05230 inline bool operator<=(const scivector& v1, const scivector_slice& v2) {
05231 return spsl_vv_leq<scivector,scivector_slice,cinterval>(v1,v2);
05232 }
05233
05234 inline bool operator<=(const srvector& v1, const scivector_slice& v2) {
05235 return spsl_vv_leq<srvector,scivector_slice,cinterval>(v1,v2);
05236 }
05237
05238 inline bool operator<=(const scvector& v1, const scivector_slice& v2) {
05239 return spsl_vv_leq<scvector,scivector_slice,cinterval>(v1,v2);
05240 }
05241
05242 inline bool operator<=(const sivector& v1, const scivector_slice& v2) {
05243 return spsl_vv_leq<sivector,scivector_slice,cinterval>(v1,v2);
05244 }
05245
05246 inline bool operator<=(const scivector_slice& v1, const ivector& v2) {
05247 return slf_vv_leq<scivector_slice,ivector,cinterval>(v1,v2);
05248 }
05249
05250 inline bool operator<=(const scivector_slice& v1, const civector& v2) {
05251 return slf_vv_leq<scivector_slice,civector,cinterval>(v1,v2);
05252 }
05253
05254 inline bool operator<=(const srvector_slice& v1, const civector& v2) {
05255 return slf_vv_leq<srvector_slice,civector,cinterval>(v1,v2);
05256 }
05257
05258 inline bool operator<=(const sivector_slice& v1, const civector& v2) {
05259 return slf_vv_leq<sivector_slice,civector,cinterval>(v1,v2);
05260 }
05261
05262 inline bool operator<=(const scvector_slice& v1, const civector& v2) {
05263 return slf_vv_leq<scvector_slice,civector,cinterval>(v1,v2);
05264 }
05265
05266 inline bool operator<=(const civector& v1, const sivector_slice& v2) {
05267 return fsl_vv_leq<civector,sivector_slice,cinterval>(v1,v2);
05268 }
05269
05270 inline bool operator<=(const civector& v1, const scivector_slice& v2) {
05271 return fsl_vv_leq<civector,scivector_slice,cinterval>(v1,v2);
05272 }
05273
05274 inline bool operator<=(const rvector& v1, const scivector_slice& v2) {
05275 return fsl_vv_leq<rvector,scivector_slice,cinterval>(v1,v2);
05276 }
05277
05278 inline bool operator<=(const cvector& v1, const scivector_slice& v2) {
05279 return fsl_vv_leq<cvector,scivector_slice,cinterval>(v1,v2);
05280 }
05281
05282 inline bool operator<=(const ivector& v1, const scivector_slice& v2) {
05283 return fsl_vv_leq<ivector,scivector_slice,cinterval>(v1,v2);
05284 }
05285
05286 inline bool operator>(const scivector_slice& v1, const srvector_slice& v2) {
05287 return slsl_vv_greater<scivector_slice,srvector_slice,cinterval>(v1,v2);
05288 }
05289
05290 inline bool operator>(const scivector_slice& v1, const scvector_slice& v2) {
05291 return slsl_vv_greater<scivector_slice,scvector_slice,cinterval>(v1,v2);
05292 }
05293
05294 inline bool operator>(const scivector_slice& v1, const sivector_slice& v2) {
05295 return slsl_vv_greater<scivector_slice,sivector_slice,cinterval>(v1,v2);
05296 }
05297
05298 inline bool operator>(const scivector_slice& v1, const scivector_slice& v2) {
05299 return slsl_vv_greater<scivector_slice,scivector_slice,cinterval>(v1,v2);
05300 }
05301
05302 inline bool operator>(const sivector_slice& v1, const scivector_slice& v2) {
05303 return slsl_vv_greater<sivector_slice,scivector_slice,cinterval>(v1,v2);
05304 }
05305
05306 inline bool operator>(const scivector_slice& v1, const srvector& v2) {
05307 return slsp_vv_greater<scivector_slice,srvector,cinterval>(v1,v2);
05308 }
05309
05310 inline bool operator>(const scivector_slice& v1, const scvector& v2) {
05311 return slsp_vv_greater<scivector_slice,scvector,cinterval>(v1,v2);
05312 }
05313
05314 inline bool operator>(const scivector_slice& v1, const sivector& v2) {
05315 return slsp_vv_greater<scivector_slice,sivector,cinterval>(v1,v2);
05316 }
05317
05318 inline bool operator>(const scivector_slice& v1, const scivector& v2) {
05319 return slsp_vv_greater<scivector_slice,scivector,cinterval>(v1,v2);
05320 }
05321
05322 inline bool operator>(const sivector_slice& v1, const scivector& v2) {
05323 return slsp_vv_greater<sivector_slice,scivector,cinterval>(v1,v2);
05324 }
05325
05326 inline bool operator>(const scivector& v1, const srvector_slice& v2) {
05327 return spsl_vv_greater<scivector,srvector_slice,cinterval>(v1,v2);
05328 }
05329
05330 inline bool operator>(const scivector& v1, const scvector_slice& v2) {
05331 return spsl_vv_greater<scivector,scvector_slice,cinterval>(v1,v2);
05332 }
05333
05334 inline bool operator>(const scivector& v1, const sivector_slice& v2) {
05335 return spsl_vv_greater<scivector,sivector_slice,cinterval>(v1,v2);
05336 }
05337
05338 inline bool operator>(const scivector& v1, const scivector_slice& v2) {
05339 return spsl_vv_greater<scivector,scivector_slice,cinterval>(v1,v2);
05340 }
05341
05342 inline bool operator>(const sivector& v1, const scivector_slice& v2) {
05343 return spsl_vv_greater<sivector,scivector_slice,cinterval>(v1,v2);
05344 }
05345
05346 inline bool operator>(const scivector_slice& v1, const rvector& v2) {
05347 return slf_vv_greater<scivector_slice,rvector,cinterval>(v1,v2);
05348 }
05349
05350 inline bool operator>(const scivector_slice& v1, const cvector& v2) {
05351 return slf_vv_greater<scivector_slice,cvector,cinterval>(v1,v2);
05352 }
05353
05354 inline bool operator>(const scivector_slice& v1, const ivector& v2) {
05355 return slf_vv_greater<scivector_slice,ivector,cinterval>(v1,v2);
05356 }
05357
05358 inline bool operator>(const scivector_slice& v1, const civector& v2) {
05359 return slf_vv_greater<scivector_slice,civector,cinterval>(v1,v2);
05360 }
05361
05362 inline bool operator>(const sivector_slice& v1, const civector& v2) {
05363 return slf_vv_greater<sivector_slice,civector,cinterval>(v1,v2);
05364 }
05365
05366 inline bool operator>(const civector& v1, const srvector_slice& v2) {
05367 return fsl_vv_greater<civector,srvector_slice,cinterval>(v1,v2);
05368 }
05369
05370 inline bool operator>(const civector& v1, const scvector_slice& v2) {
05371 return fsl_vv_greater<civector,scvector_slice,cinterval>(v1,v2);
05372 }
05373
05374 inline bool operator>(const civector& v1, const sivector_slice& v2) {
05375 return fsl_vv_greater<civector,sivector_slice,cinterval>(v1,v2);
05376 }
05377
05378 inline bool operator>(const civector& v1, const scivector_slice& v2) {
05379 return fsl_vv_greater<civector,scivector_slice,cinterval>(v1,v2);
05380 }
05381
05382 inline bool operator>(const ivector& v1, const scivector_slice& v2) {
05383 return fsl_vv_greater<ivector,scivector_slice,cinterval>(v1,v2);
05384 }
05385
05386 inline bool operator>(const scivector_slice& v1, const rvector_slice& v2) {
05387 return slf_vv_greater<scivector_slice,rvector_slice,cinterval>(v1,v2);
05388 }
05389
05390 inline bool operator>(const scivector_slice& v1, const ivector_slice& v2) {
05391 return slf_vv_greater<scivector_slice,ivector_slice,cinterval>(v1,v2);
05392 }
05393
05394 inline bool operator>(const scivector_slice& v1, const cvector_slice& v2) {
05395 return slf_vv_greater<scivector_slice,cvector_slice,cinterval>(v1,v2);
05396 }
05397
05398 inline bool operator>(const scivector_slice& v1, const civector_slice& v2) {
05399 return slf_vv_greater<scivector_slice,civector_slice,cinterval>(v1,v2);
05400 }
05401
05402 inline bool operator>(const sivector_slice& v1, const civector_slice& v2) {
05403 return slf_vv_greater<sivector_slice,civector_slice,cinterval>(v1,v2);
05404 }
05405
05406 inline bool operator>(const civector_slice& v1, const srvector_slice& v2) {
05407 return fsl_vv_greater<civector_slice,srvector_slice,cinterval>(v1,v2);
05408 }
05409
05410 inline bool operator>(const civector_slice& v1, const scvector_slice& v2) {
05411 return fsl_vv_greater<civector_slice,scvector_slice,cinterval>(v1,v2);
05412 }
05413
05414 inline bool operator>(const civector_slice& v1, const sivector_slice& v2) {
05415 return fsl_vv_greater<civector_slice,sivector_slice,cinterval>(v1,v2);
05416 }
05417
05418 inline bool operator>(const civector_slice& v1, const scivector_slice& v2) {
05419 return fsl_vv_greater<civector_slice,scivector_slice,cinterval>(v1,v2);
05420 }
05421
05422 inline bool operator>(const ivector_slice& v1, const scivector_slice& v2) {
05423 return fsl_vv_greater<ivector_slice,scivector_slice,cinterval>(v1,v2);
05424 }
05425
05426 inline bool operator>=(const scivector_slice& v1, const srvector_slice& v2) {
05427 return slsl_vv_geq<scivector_slice,srvector_slice,cinterval>(v1,v2);
05428 }
05429
05430 inline bool operator>=(const scivector_slice& v1, const scvector_slice& v2) {
05431 return slsl_vv_geq<scivector_slice,scvector_slice,cinterval>(v1,v2);
05432 }
05433
05434 inline bool operator>=(const scivector_slice& v1, const sivector_slice& v2) {
05435 return slsl_vv_geq<scivector_slice,sivector_slice,cinterval>(v1,v2);
05436 }
05437
05438 inline bool operator>=(const scivector_slice& v1, const scivector_slice& v2) {
05439 return slsl_vv_geq<scivector_slice,scivector_slice,cinterval>(v1,v2);
05440 }
05441
05442 inline bool operator>=(const sivector_slice& v1, const scivector_slice& v2) {
05443 return slsl_vv_geq<sivector_slice,scivector_slice,cinterval>(v1,v2);
05444 }
05445
05446 inline bool operator>=(const scivector_slice& v1, const srvector& v2) {
05447 return slsp_vv_geq<scivector_slice,srvector,cinterval>(v1,v2);
05448 }
05449
05450 inline bool operator>=(const scivector_slice& v1, const scvector& v2) {
05451 return slsp_vv_geq<scivector_slice,scvector,cinterval>(v1,v2);
05452 }
05453
05454 inline bool operator>=(const scivector_slice& v1, const sivector& v2) {
05455 return slsp_vv_geq<scivector_slice,sivector,cinterval>(v1,v2);
05456 }
05457
05458 inline bool operator>=(const scivector_slice& v1, const scivector& v2) {
05459 return slsp_vv_geq<scivector_slice,scivector,cinterval>(v1,v2);
05460 }
05461
05462 inline bool operator>=(const sivector_slice& v1, const scivector& v2) {
05463 return slsp_vv_geq<sivector_slice,scivector,cinterval>(v1,v2);
05464 }
05465
05466 inline bool operator>=(const scivector& v1, const srvector_slice& v2) {
05467 return spsl_vv_geq<scivector,srvector_slice,cinterval>(v1,v2);
05468 }
05469
05470 inline bool operator>=(const scivector& v1, const scvector_slice& v2) {
05471 return spsl_vv_geq<scivector,scvector_slice,cinterval>(v1,v2);
05472 }
05473
05474 inline bool operator>=(const scivector& v1, const sivector_slice& v2) {
05475 return spsl_vv_geq<scivector,sivector_slice,cinterval>(v1,v2);
05476 }
05477
05478 inline bool operator>=(const scivector& v1, const scivector_slice& v2) {
05479 return spsl_vv_geq<scivector,scivector_slice,cinterval>(v1,v2);
05480 }
05481
05482 inline bool operator>=(const sivector& v1, const scivector_slice& v2) {
05483 return spsl_vv_geq<sivector,scivector_slice,cinterval>(v1,v2);
05484 }
05485
05486 inline bool operator>=(const scivector_slice& v1, const rvector& v2) {
05487 return slf_vv_geq<scivector_slice,rvector,cinterval>(v1,v2);
05488 }
05489
05490 inline bool operator>=(const scivector_slice& v1, const cvector& v2) {
05491 return slf_vv_geq<scivector_slice,cvector,cinterval>(v1,v2);
05492 }
05493
05494 inline bool operator>=(const scivector_slice& v1, const ivector& v2) {
05495 return slf_vv_geq<scivector_slice,ivector,cinterval>(v1,v2);
05496 }
05497
05498 inline bool operator>=(const scivector_slice& v1, const civector& v2) {
05499 return slf_vv_geq<scivector_slice,civector,cinterval>(v1,v2);
05500 }
05501
05502 inline bool operator>=(const sivector_slice& v1, const civector& v2) {
05503 return slf_vv_geq<sivector_slice,civector,cinterval>(v1,v2);
05504 }
05505
05506 inline bool operator>=(const civector& v1, const srvector_slice& v2) {
05507 return fsl_vv_geq<civector,srvector_slice,cinterval>(v1,v2);
05508 }
05509
05510 inline bool operator>=(const civector& v1, const scvector_slice& v2) {
05511 return fsl_vv_geq<civector,scvector_slice,cinterval>(v1,v2);
05512 }
05513
05514 inline bool operator>=(const civector& v1, const sivector_slice& v2) {
05515 return fsl_vv_geq<civector,sivector_slice,cinterval>(v1,v2);
05516 }
05517
05518 inline bool operator>=(const civector& v1, const scivector_slice& v2) {
05519 return fsl_vv_geq<civector,scivector_slice,cinterval>(v1,v2);
05520 }
05521
05522 inline bool operator>=(const ivector& v1, const scivector_slice& v2) {
05523 return fsl_vv_geq<ivector,scivector_slice,cinterval>(v1,v2);
05524 }
05525
05526 inline bool operator>=(const scivector_slice& v1, const rvector_slice& v2) {
05527 return slf_vv_geq<scivector_slice,rvector_slice,cinterval>(v1,v2);
05528 }
05529
05530 inline bool operator>=(const scivector_slice& v1, const ivector_slice& v2) {
05531 return slf_vv_geq<scivector_slice,ivector_slice,cinterval>(v1,v2);
05532 }
05533
05534 inline bool operator>=(const scivector_slice& v1, const cvector_slice& v2) {
05535 return slf_vv_geq<scivector_slice,cvector_slice,cinterval>(v1,v2);
05536 }
05537
05538 inline bool operator>=(const scivector_slice& v1, const civector_slice& v2) {
05539 return slf_vv_geq<scivector_slice,civector_slice,cinterval>(v1,v2);
05540 }
05541
05542 inline bool operator>=(const sivector_slice& v1, const civector_slice& v2) {
05543 return slf_vv_geq<sivector_slice,civector_slice,cinterval>(v1,v2);
05544 }
05545
05546 inline bool operator>=(const civector_slice& v1, const srvector_slice& v2) {
05547 return fsl_vv_geq<civector_slice,srvector_slice,cinterval>(v1,v2);
05548 }
05549
05550 inline bool operator>=(const civector_slice& v1, const scvector_slice& v2) {
05551 return fsl_vv_geq<civector_slice,scvector_slice,cinterval>(v1,v2);
05552 }
05553
05554 inline bool operator>=(const civector_slice& v1, const sivector_slice& v2) {
05555 return fsl_vv_geq<civector_slice,sivector_slice,cinterval>(v1,v2);
05556 }
05557
05558 inline bool operator>=(const civector_slice& v1, const scivector_slice& v2) {
05559 return fsl_vv_geq<civector_slice,scivector_slice,cinterval>(v1,v2);
05560 }
05561
05562 inline bool operator>=(const ivector_slice& v1, const scivector_slice& v2) {
05563 return fsl_vv_geq<ivector_slice,scivector_slice,cinterval>(v1,v2);
05564 }
05565
05566 inline std::ostream& operator<<(std::ostream& os, const scivector_slice& v) {
05567 return sl_v_output<scivector_slice,cinterval>(os,v);
05568 }
05569
05570 inline std::istream& operator>>(std::istream& is, scivector_slice& v) {
05571 return sl_v_input<scivector_slice,cinterval>(is,v);
05572 }
05573
05574 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const rvector& v2) {
05575 slf_vv_accu<cidotprecision,scivector_slice,rvector,sparse_cidot>(dot,v1,v2);
05576 }
05577
05578 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const cvector& v2) {
05579 slf_vv_accu<cidotprecision,scivector_slice,cvector,sparse_cidot>(dot,v1,v2);
05580 }
05581
05582 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const ivector& v2) {
05583 slf_vv_accu<cidotprecision,scivector_slice,ivector,sparse_cidot>(dot,v1,v2);
05584 }
05585
05586 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const civector& v2) {
05587 slf_vv_accu<cidotprecision,scivector_slice,civector,sparse_cidot>(dot,v1,v2);
05588 }
05589
05590 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const civector& v2) {
05591 slf_vv_accu<cidotprecision,srvector_slice,civector,sparse_cidot>(dot,v1,v2);
05592 }
05593
05594 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const civector& v2) {
05595 slf_vv_accu<cidotprecision,sivector_slice,civector,sparse_cidot>(dot,v1,v2);
05596 }
05597
05598 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const civector& v2) {
05599 slf_vv_accu<cidotprecision,scvector_slice,civector,sparse_cidot>(dot,v1,v2);
05600 }
05601
05602 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const ivector& v2) {
05603 slf_vv_accu<cidotprecision,scvector_slice,ivector,sparse_cidot>(dot,v1,v2);
05604 }
05605
05606 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const cvector& v2) {
05607 slf_vv_accu<cidotprecision,sivector_slice,cvector,sparse_cidot>(dot,v1,v2);
05608 }
05609
05610 inline void accumulate(cidotprecision& dot, const civector& v1, const srvector_slice& v2) {
05611 fsl_vv_accu<cidotprecision,civector,srvector_slice,sparse_cidot>(dot,v1,v2);
05612 }
05613
05614 inline void accumulate(cidotprecision& dot, const civector& v1, const scvector_slice& v2) {
05615 fsl_vv_accu<cidotprecision,civector,scvector_slice,sparse_cidot>(dot,v1,v2);
05616 }
05617
05618 inline void accumulate(cidotprecision& dot, const civector& v1, const sivector_slice& v2) {
05619 fsl_vv_accu<cidotprecision,civector,sivector_slice,sparse_cidot>(dot,v1,v2);
05620 }
05621
05622 inline void accumulate(cidotprecision& dot, const civector& v1, const scivector_slice& v2) {
05623 fsl_vv_accu<cidotprecision,civector,scivector_slice,sparse_cidot>(dot,v1,v2);
05624 }
05625
05626 inline void accumulate(cidotprecision& dot, const rvector& v1, const scivector_slice& v2) {
05627 fsl_vv_accu<cidotprecision,rvector,scivector_slice,sparse_cidot>(dot,v1,v2);
05628 }
05629
05630 inline void accumulate(cidotprecision& dot, const cvector& v1, const scivector_slice& v2) {
05631 fsl_vv_accu<cidotprecision,cvector,scivector_slice,sparse_cidot>(dot,v1,v2);
05632 }
05633
05634 inline void accumulate(cidotprecision& dot, const ivector& v1, const scivector_slice& v2) {
05635 fsl_vv_accu<cidotprecision,ivector,scivector_slice,sparse_cidot>(dot,v1,v2);
05636 }
05637
05638 inline void accumulate(cidotprecision& dot, const cvector& v1, const sivector_slice& v2) {
05639 fsl_vv_accu<cidotprecision,cvector,sivector_slice,sparse_cidot>(dot,v1,v2);
05640 }
05641
05642 inline void accumulate(cidotprecision& dot, const ivector& v1, const scvector_slice& v2) {
05643 fsl_vv_accu<cidotprecision,ivector,scvector_slice,sparse_cidot>(dot,v1,v2);
05644 }
05645
05646 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const rvector_slice& v2) {
05647 slf_vv_accu<cidotprecision,scivector_slice,rvector_slice,sparse_cidot>(dot,v1,v2);
05648 }
05649
05650 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const ivector_slice& v2) {
05651 slf_vv_accu<cidotprecision,scivector_slice,ivector_slice,sparse_cidot>(dot,v1,v2);
05652 }
05653
05654 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const cvector_slice& v2) {
05655 slf_vv_accu<cidotprecision,scivector_slice,cvector_slice,sparse_cidot>(dot,v1,v2);
05656 }
05657
05658 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const civector_slice& v2) {
05659 slf_vv_accu<cidotprecision,scivector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
05660 }
05661
05662 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const civector_slice& v2) {
05663 slf_vv_accu<cidotprecision,srvector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
05664 }
05665
05666 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const civector_slice& v2) {
05667 slf_vv_accu<cidotprecision,scvector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
05668 }
05669
05670 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const civector_slice& v2) {
05671 slf_vv_accu<cidotprecision,sivector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
05672 }
05673
05674 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const ivector_slice& v2) {
05675 slf_vv_accu<cidotprecision,scvector_slice,ivector_slice,sparse_cidot>(dot,v1,v2);
05676 }
05677
05678 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const cvector_slice& v2) {
05679 slf_vv_accu<cidotprecision,sivector_slice,cvector_slice,sparse_cidot>(dot,v1,v2);
05680 }
05681
05682 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const srvector_slice& v2) {
05683 fsl_vv_accu<cidotprecision,civector_slice,srvector_slice,sparse_cidot>(dot,v1,v2);
05684 }
05685
05686 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scvector_slice& v2) {
05687 fsl_vv_accu<cidotprecision,civector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
05688 }
05689
05690 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const sivector_slice& v2) {
05691 fsl_vv_accu<cidotprecision,civector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
05692 }
05693
05694 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scivector_slice& v2) {
05695 fsl_vv_accu<cidotprecision,civector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05696 }
05697
05698 inline void accumulate(cidotprecision& dot, const rvector_slice& v1, const scivector_slice& v2) {
05699 fsl_vv_accu<cidotprecision,rvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05700 }
05701
05702 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scivector_slice& v2) {
05703 fsl_vv_accu<cidotprecision,ivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05704 }
05705
05706 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const scivector_slice& v2) {
05707 fsl_vv_accu<cidotprecision,cvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05708 }
05709
05710 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const sivector_slice& v2) {
05711 fsl_vv_accu<cidotprecision,cvector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
05712 }
05713
05714 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scvector_slice& v2) {
05715 fsl_vv_accu<cidotprecision,ivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
05716 }
05717
05718 inline void accumulate(cidotprecision& dot, const scivector& v1, const srvector_slice& v2) {
05719 spsl_vv_accu<cidotprecision,scivector,srvector_slice,sparse_cidot>(dot,v1,v2);
05720 }
05721
05722 inline void accumulate(cidotprecision& dot, const scivector& v1, const scvector_slice& v2) {
05723 spsl_vv_accu<cidotprecision,scivector,scvector_slice,sparse_cidot>(dot,v1,v2);
05724 }
05725
05726 inline void accumulate(cidotprecision& dot, const scivector& v1, const sivector_slice& v2) {
05727 spsl_vv_accu<cidotprecision,scivector,sivector_slice,sparse_cidot>(dot,v1,v2);
05728 }
05729
05730 inline void accumulate(cidotprecision& dot, const scivector& v1, const scivector_slice& v2) {
05731 spsl_vv_accu<cidotprecision,scivector,scivector_slice,sparse_cidot>(dot,v1,v2);
05732 }
05733
05734 inline void accumulate(cidotprecision& dot, const srvector& v1, const scivector_slice& v2) {
05735 spsl_vv_accu<cidotprecision,srvector,scivector_slice,sparse_cidot>(dot,v1,v2);
05736 }
05737
05738 inline void accumulate(cidotprecision& dot, const scvector& v1, const scivector_slice& v2) {
05739 spsl_vv_accu<cidotprecision,scvector,scivector_slice,sparse_cidot>(dot,v1,v2);
05740 }
05741
05742 inline void accumulate(cidotprecision& dot, const sivector& v1, const scivector_slice& v2) {
05743 spsl_vv_accu<cidotprecision,sivector,scivector_slice,sparse_cidot>(dot,v1,v2);
05744 }
05745
05746 inline void accumulate(cidotprecision& dot, const scvector& v1, const sivector_slice& v2) {
05747 spsl_vv_accu<cidotprecision,scvector,sivector_slice,sparse_cidot>(dot,v1,v2);
05748 }
05749
05750 inline void accumulate(cidotprecision& dot, const sivector& v1, const scvector_slice& v2) {
05751 spsl_vv_accu<cidotprecision,sivector,scvector_slice,sparse_cidot>(dot,v1,v2);
05752 }
05753
05754 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const srvector& v2) {
05755 slsp_vv_accu<cidotprecision,scivector_slice,srvector,sparse_cidot>(dot,v1,v2);
05756 }
05757
05758 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scvector& v2) {
05759 slsp_vv_accu<cidotprecision,scivector_slice,scvector,sparse_cidot>(dot,v1,v2);
05760 }
05761
05762 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const sivector& v2) {
05763 slsp_vv_accu<cidotprecision,scivector_slice,sivector,sparse_cidot>(dot,v1,v2);
05764 }
05765
05766 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scivector& v2) {
05767 slsp_vv_accu<cidotprecision,scivector_slice,scivector,sparse_cidot>(dot,v1,v2);
05768 }
05769
05770 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const scivector& v2) {
05771 slsp_vv_accu<cidotprecision,srvector_slice,scivector,sparse_cidot>(dot,v1,v2);
05772 }
05773
05774 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scivector& v2) {
05775 slsp_vv_accu<cidotprecision,sivector_slice,scivector,sparse_cidot>(dot,v1,v2);
05776 }
05777
05778 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const scivector& v2) {
05779 slsp_vv_accu<cidotprecision,scvector_slice,scivector,sparse_cidot>(dot,v1,v2);
05780 }
05781
05782 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const sivector& v2) {
05783 slsp_vv_accu<cidotprecision,scvector_slice,sivector,sparse_cidot>(dot,v1,v2);
05784 }
05785
05786 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scvector& v2) {
05787 slsp_vv_accu<cidotprecision,sivector_slice,scvector,sparse_cidot>(dot,v1,v2);
05788 }
05789
05790 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const srvector_slice& v2) {
05791 slsl_vv_accu<cidotprecision,scivector_slice,srvector_slice,sparse_cidot>(dot,v1,v2);
05792 }
05793
05794 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scvector_slice& v2) {
05795 slsl_vv_accu<cidotprecision,scivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
05796 }
05797
05798 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const sivector_slice& v2) {
05799 slsl_vv_accu<cidotprecision,scivector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
05800 }
05801
05802 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scivector_slice& v2) {
05803 slsl_vv_accu<cidotprecision,scivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05804 }
05805
05806 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const scivector_slice& v2) {
05807 slsl_vv_accu<cidotprecision,srvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05808 }
05809
05810 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const scivector_slice& v2) {
05811 slsl_vv_accu<cidotprecision,scvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05812 }
05813
05814 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scivector_slice& v2) {
05815 slsl_vv_accu<cidotprecision,sivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
05816 }
05817
05818 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scvector_slice& v2) {
05819 slsl_vv_accu<cidotprecision,sivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
05820 }
05821
05822 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const sivector_slice& v2) {
05823 slsl_vv_accu<cidotprecision,scvector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
05824 }
05825
05826 inline void accumulate(cidotprecision& dot, const scivector& v1, const cvector& v2) {
05827 spf_vv_accu<cidotprecision,scivector,cvector,sparse_cidot>(dot,v1,v2);
05828 }
05829
05830 inline void accumulate(cidotprecision& dot, const scivector& v1, const rvector& v2) {
05831 spf_vv_accu<cidotprecision,scivector,rvector,sparse_cidot>(dot,v1,v2);
05832 }
05833
05834 inline void accumulate(cidotprecision& dot, const scivector& v1, const ivector& v2) {
05835 spf_vv_accu<cidotprecision,scivector,ivector,sparse_cidot>(dot,v1,v2);
05836 }
05837
05838 inline void accumulate(cidotprecision& dot, const scivector& v1, const civector& v2) {
05839 spf_vv_accu<cidotprecision,scivector,civector,sparse_cidot>(dot,v1,v2);
05840 }
05841
05842 inline void accumulate(cidotprecision& dot, const scvector& v1, const civector& v2) {
05843 spf_vv_accu<cidotprecision,scvector,civector,sparse_cidot>(dot,v1,v2);
05844 }
05845
05846 inline void accumulate(cidotprecision& dot, const srvector& v1, const civector& v2) {
05847 spf_vv_accu<cidotprecision,srvector,civector,sparse_cidot>(dot,v1,v2);
05848 }
05849
05850 inline void accumulate(cidotprecision& dot, const sivector& v1, const civector& v2) {
05851 spf_vv_accu<cidotprecision,sivector,civector,sparse_cidot>(dot,v1,v2);
05852 }
05853
05854 inline void accumulate(cidotprecision& dot, const scvector& v1, const ivector& v2) {
05855 spf_vv_accu<cidotprecision,scvector,ivector,sparse_cidot>(dot,v1,v2);
05856 }
05857
05858 inline void accumulate(cidotprecision& dot, const sivector& v1, const cvector& v2) {
05859 spf_vv_accu<cidotprecision,sivector,cvector,sparse_cidot>(dot,v1,v2);
05860 }
05861
05862 inline void accumulate(cidotprecision& dot, const rvector& v1, const scivector& v2) {
05863 fsp_vv_accu<cidotprecision,rvector,scivector,sparse_cidot>(dot,v1,v2);
05864 }
05865
05866 inline void accumulate(cidotprecision& dot, const cvector& v1, const scivector& v2) {
05867 fsp_vv_accu<cidotprecision,cvector,scivector,sparse_cidot>(dot,v1,v2);
05868 }
05869
05870 inline void accumulate(cidotprecision& dot, const ivector& v1, const scivector& v2) {
05871 fsp_vv_accu<cidotprecision,ivector,scivector,sparse_cidot>(dot,v1,v2);
05872 }
05873
05874 inline void accumulate(cidotprecision& dot, const civector& v1, const scivector& v2) {
05875 fsp_vv_accu<cidotprecision,civector,scivector,sparse_cidot>(dot,v1,v2);
05876 }
05877
05878 inline void accumulate(cidotprecision& dot, const civector& v1, const srvector& v2) {
05879 fsp_vv_accu<cidotprecision,civector,srvector,sparse_cidot>(dot,v1,v2);
05880 }
05881
05882 inline void accumulate(cidotprecision& dot, const civector& v1, const scvector& v2) {
05883 fsp_vv_accu<cidotprecision,civector,scvector,sparse_cidot>(dot,v1,v2);
05884 }
05885
05886 inline void accumulate(cidotprecision& dot, const civector& v1, const sivector& v2) {
05887 fsp_vv_accu<cidotprecision,civector,sivector,sparse_cidot>(dot,v1,v2);
05888 }
05889
05890 inline void accumulate(cidotprecision& dot, const ivector& v1, const scvector& v2) {
05891 fsp_vv_accu<cidotprecision,ivector,scvector,sparse_cidot>(dot,v1,v2);
05892 }
05893
05894 inline void accumulate(cidotprecision& dot, const cvector& v1, const sivector& v2) {
05895 fsp_vv_accu<cidotprecision,cvector,sivector,sparse_cidot>(dot,v1,v2);
05896 }
05897
05898 inline void accumulate(cidotprecision& dot, const scivector& v1, const cvector_slice& v2) {
05899 spf_vv_accu<cidotprecision,scivector,cvector_slice,sparse_cidot>(dot,v1,v2);
05900 }
05901
05902 inline void accumulate(cidotprecision& dot, const scivector& v1, const rvector_slice& v2) {
05903 spf_vv_accu<cidotprecision,scivector,rvector_slice,sparse_cidot>(dot,v1,v2);
05904 }
05905
05906 inline void accumulate(cidotprecision& dot, const scivector& v1, const ivector_slice& v2) {
05907 spf_vv_accu<cidotprecision,scivector,ivector_slice,sparse_cidot>(dot,v1,v2);
05908 }
05909
05910 inline void accumulate(cidotprecision& dot, const scivector& v1, const civector_slice& v2) {
05911 spf_vv_accu<cidotprecision,scivector,civector_slice,sparse_cidot>(dot,v1,v2);
05912 }
05913
05914 inline void accumulate(cidotprecision& dot, const scvector& v1, const civector_slice& v2) {
05915 spf_vv_accu<cidotprecision,scvector,civector_slice,sparse_cidot>(dot,v1,v2);
05916 }
05917
05918 inline void accumulate(cidotprecision& dot, const srvector& v1, const civector_slice& v2) {
05919 spf_vv_accu<cidotprecision,srvector,civector_slice,sparse_cidot>(dot,v1,v2);
05920 }
05921
05922 inline void accumulate(cidotprecision& dot, const sivector& v1, const civector_slice& v2) {
05923 spf_vv_accu<cidotprecision,sivector,civector_slice,sparse_cidot>(dot,v1,v2);
05924 }
05925
05926 inline void accumulate(cidotprecision& dot, const scvector& v1, const ivector_slice& v2) {
05927 spf_vv_accu<cidotprecision,scvector,ivector_slice,sparse_cidot>(dot,v1,v2);
05928 }
05929
05930 inline void accumulate(cidotprecision& dot, const sivector& v1, const cvector_slice& v2) {
05931 spf_vv_accu<cidotprecision,sivector,cvector_slice,sparse_cidot>(dot,v1,v2);
05932 }
05933
05934 inline void accumulate(cidotprecision& dot, const rvector_slice& v1, const scivector& v2) {
05935 fsp_vv_accu<cidotprecision,rvector_slice,scivector,sparse_cidot>(dot,v1,v2);
05936 }
05937
05938 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const scivector& v2) {
05939 fsp_vv_accu<cidotprecision,cvector_slice,scivector,sparse_cidot>(dot,v1,v2);
05940 }
05941
05942 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scivector& v2) {
05943 fsp_vv_accu<cidotprecision,ivector_slice,scivector,sparse_cidot>(dot,v1,v2);
05944 }
05945
05946 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scivector& v2) {
05947 fsp_vv_accu<cidotprecision,civector_slice,scivector,sparse_cidot>(dot,v1,v2);
05948 }
05949
05950 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const srvector& v2) {
05951 fsp_vv_accu<cidotprecision,civector_slice,srvector,sparse_cidot>(dot,v1,v2);
05952 }
05953
05954 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scvector& v2) {
05955 fsp_vv_accu<cidotprecision,civector_slice,scvector,sparse_cidot>(dot,v1,v2);
05956 }
05957
05958 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const sivector& v2) {
05959 fsp_vv_accu<cidotprecision,civector_slice,sivector,sparse_cidot>(dot,v1,v2);
05960 }
05961
05962 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scvector& v2) {
05963 fsp_vv_accu<cidotprecision,ivector_slice,scvector,sparse_cidot>(dot,v1,v2);
05964 }
05965
05966 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const sivector& v2) {
05967 fsp_vv_accu<cidotprecision,cvector_slice,sivector,sparse_cidot>(dot,v1,v2);
05968 }
05969
05970 inline void accumulate(cidotprecision& dot, const scivector& v1, const srvector& v2) {
05971 spsp_vv_accu<cidotprecision,scivector,srvector,sparse_cidot>(dot,v1,v2);
05972 }
05973
05974 inline void accumulate(cidotprecision& dot, const scivector& v1, const scvector& v2) {
05975 spsp_vv_accu<cidotprecision,scivector,scvector,sparse_cidot>(dot,v1,v2);
05976 }
05977
05978 inline void accumulate(cidotprecision& dot, const scivector& v1, const sivector& v2) {
05979 spsp_vv_accu<cidotprecision,scivector,sivector,sparse_cidot>(dot,v1,v2);
05980 }
05981
05982 inline void accumulate(cidotprecision& dot, const scivector& v1, const scivector& v2) {
05983 spsp_vv_accu<cidotprecision,scivector,scivector,sparse_cidot>(dot,v1,v2);
05984 }
05985
05986 inline void accumulate(cidotprecision& dot, const srvector& v1, const scivector& v2) {
05987 spsp_vv_accu<cidotprecision,srvector,scivector,sparse_cidot>(dot,v1,v2);
05988 }
05989
05990 inline void accumulate(cidotprecision& dot, const scvector& v1, const scivector& v2) {
05991 spsp_vv_accu<cidotprecision,scvector,scivector,sparse_cidot>(dot,v1,v2);
05992 }
05993
05994 inline void accumulate(cidotprecision& dot, const sivector& v1, const scivector& v2) {
05995 spsp_vv_accu<cidotprecision,sivector,scivector,sparse_cidot>(dot,v1,v2);
05996 }
05997
05998 inline void accumulate(cidotprecision& dot, const scvector& v1, const sivector& v2) {
05999 spsp_vv_accu<cidotprecision,scvector,sivector,sparse_cidot>(dot,v1,v2);
06000 }
06001
06002 inline void accumulate(cidotprecision& dot, const sivector& v1, const scvector& v2) {
06003 spsp_vv_accu<cidotprecision,sivector,scvector,sparse_cidot>(dot,v1,v2);
06004 }
06005
06006 }
06007
06008 #include "sparsevector.inl"
06009
06010 #endif