C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
scivector.hpp
00001 /*
00002 **  CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4)
00003 **
00004 **  Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
00005 **                          Universitaet Karlsruhe, Germany
00006 **            (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie
00007 **                          Universitaet Wuppertal, Germany   
00008 **
00009 **  This library is free software; you can redistribute it and/or
00010 **  modify it under the terms of the GNU Library General Public
00011 **  License as published by the Free Software Foundation; either
00012 **  version 2 of the License, or (at your option) any later version.
00013 **
00014 **  This library is distributed in the hope that it will be useful,
00015 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 **  Library General Public License for more details.
00018 **
00019 **  You should have received a copy of the GNU Library General Public
00020 **  License along with this library; if not, write to the Free
00021 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022 */
00023 
00024 /* CVS $Id: scivector.hpp,v 1.15 2014/01/30 17:23:48 cxsc Exp $ */
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 
00058 
00062 class scivector {
00063   private:
00064     std::vector<int> p;
00065     std::vector<cinterval> x;
00066     int lb;
00067     int ub;
00068     int n; 
00069 
00070   public:
00072     scivector() : lb(0), ub(-1) , n(0) {
00073     }
00074 
00076     explicit scivector(const int s) : lb(1), ub(s), n(s) {
00077         p.reserve((int)(s*0.1));
00078         x.reserve((int)(s*0.1));
00079     }
00080 
00082     scivector(const int s, const int b) : lb(1), ub(s), n(s) {
00083         p.reserve(b);
00084         x.reserve(b);
00085     }
00086 
00088     scivector(const civector& 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(v[i]);
00093           }
00094         }
00095     }
00096 
00098     scivector(const cvector& v) : lb(Lb(v)), ub(Ub(v)), n(VecLen(v)) {
00099         for(int i=lb ; i<=ub ; i++) {
00100           if(v[i] != 0.0) {
00101             p.push_back(i-lb);
00102             x.push_back(cinterval(v[i]));
00103           }
00104         }
00105     }
00106 
00108     scivector(const rvector& v) : lb(Lb(v)), ub(Ub(v)), n(VecLen(v)) {
00109         for(int i=lb ; i<=ub ; i++) {
00110           if(v[i] != 0.0) {
00111             p.push_back(i-lb);
00112             x.push_back(cinterval(v[i]));
00113           }
00114         }
00115     }
00116 
00118     scivector(const int n, const int nnz, const intvector& index, const civector& values) : lb(1), ub(n) {
00119       this->n = n;
00120       for(int i=0 ; i<nnz ; i++) {
00121         if(values[i+Lb(values)] != 0.0) {
00122           p.push_back(index[i+Lb(index)]);
00123           x.push_back(values[i+Lb(values)]);
00124         }
00125       }
00126     }
00127 
00129     scivector(const int n, const int nnz, const int* index, const cinterval* values) : lb(1), ub(n) {
00130       this->n = n;
00131       for(int i=0 ; i<nnz ; i++) {
00132         if(values[i] != 0.0) {
00133           p.push_back(index[i]);
00134           x.push_back(values[i]);
00135         }
00136       }
00137     }
00138 
00140     scivector(const srvector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00141       x.reserve(v.get_nnz());
00142       for(int i=0 ; i<v.get_nnz() ; i++) 
00143         x.push_back(cinterval(v.x[i]));
00144     }
00145 
00147     scivector(const scvector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00148       x.reserve(v.get_nnz()); 
00149       for(int i=0 ; i<v.get_nnz() ; i++) 
00150         x.push_back(cinterval(v.x[i]));
00151     }
00152 
00154     scivector(const sivector& v) : p(v.p), lb(v.lb), ub(v.ub), n(v.n) {
00155       x.reserve(v.get_nnz());
00156       for(int i=0 ; i<v.get_nnz() ; i++) 
00157         x.push_back(cinterval(v.x[i]));
00158     }
00159 
00161     scivector(const srvector_slice&);
00163     scivector(const scvector_slice&);
00165     scivector(const sivector_slice&);
00167     scivector(const scivector_slice&);
00169     scivector(const srmatrix_subv& A);
00171     scivector(const scmatrix_subv& A);
00173     scivector(const simatrix_subv& A);
00175     scivector(const scimatrix_subv& A);
00176 
00178 
00183     std::vector<int>& row_indices() {
00184       return p;
00185     }
00186 
00188 
00192     std::vector<cinterval>& values() {
00193       return x;
00194     }
00195 
00197 
00202     const std::vector<int>& row_indices() const {
00203       return p;
00204     }
00205 
00207 
00211     const std::vector<cinterval>& values() const {
00212       return x;
00213     }
00214 
00216     int get_nnz() const {
00217       return x.size();
00218     }
00219 
00221     real density() const {
00222       return (double)x.size()/n;
00223     }
00224 
00226     void dropzeros() {
00227       for(int i=0 ; i<get_nnz() ; i++) {
00228         if(x[i] == 0.0) {
00229            x.erase(x.begin()+i);
00230            p.erase(p.begin()+i);
00231         }
00232       }
00233     }
00234 
00236     scivector& operator=(const srvector& v) {
00237       n = v.n;
00238       p = v.p;
00239       x.clear();
00240       x.reserve(v.get_nnz());
00241       for(unsigned int i=0 ; i<v.x.size() ; i++)
00242         x[i] = cinterval(v.x[i]);
00243       return *this;
00244     } 
00245 
00247     scivector& operator=(const sivector& v) {
00248       n = v.n;
00249       p = v.p;
00250       x.clear();
00251       x.reserve(v.get_nnz());
00252       for(unsigned int i=0 ; i<v.x.size() ; i++)
00253         x[i] = cinterval(v.x[i]);
00254       return *this;
00255     } 
00256 
00258     scivector& operator=(const scvector& v) {
00259       n = v.n;
00260       p = v.p;
00261       x.clear();
00262       x.reserve(v.get_nnz());
00263       for(unsigned int i=0 ; i<v.x.size() ; i++)
00264         x[i] = cinterval(v.x[i]);
00265       return *this;
00266     } 
00267 
00269     scivector& operator=(const real& v) {
00270       return sp_vs_assign<scivector,real,cinterval>(*this,v);
00271     }
00272 
00274     scivector& operator=(const complex& v) {
00275       return sp_vs_assign<scivector,complex,cinterval>(*this,v);
00276     }
00277 
00279     scivector& operator=(const interval& v) {
00280       return sp_vs_assign<scivector,interval,cinterval>(*this,v);
00281     }
00282 
00284     scivector& operator=(const cinterval& v) {
00285       return sp_vs_assign<scivector,cinterval,cinterval>(*this,v);
00286     }
00287 
00289     scivector& operator=(const rvector& v) {
00290       return spf_vv_assign<scivector,rvector,cinterval>(*this,v);
00291     }
00292 
00294     scivector& operator=(const cvector& v) {
00295       return spf_vv_assign<scivector,cvector,cinterval>(*this,v);
00296     }
00297 
00299     scivector& operator=(const ivector& v) {
00300       return spf_vv_assign<scivector,ivector,cinterval>(*this,v);
00301     }
00302 
00304     scivector& operator=(const civector& v) {
00305       return spf_vv_assign<scivector,civector,cinterval>(*this,v);
00306     }
00307 
00309     scivector& operator=(const rvector_slice& v) {
00310       return spf_vv_assign<scivector,rvector_slice,cinterval>(*this,v);
00311     }
00312 
00314     scivector& operator=(const cvector_slice& v) {
00315       return spf_vv_assign<scivector,cvector_slice,cinterval>(*this,v);
00316     }
00317 
00319     scivector& operator=(const ivector_slice& v) {
00320       return spf_vv_assign<scivector,ivector_slice,cinterval>(*this,v);
00321     }
00322 
00324     scivector& operator=(const civector_slice& v) {
00325       return spf_vv_assign<scivector,civector_slice,cinterval>(*this,v);
00326     }
00327 
00329     scivector& operator=(const srvector_slice&);
00331     scivector& operator=(const scvector_slice&);
00333     scivector& operator=(const sivector_slice&);
00335     scivector& operator=(const scivector_slice&);
00336 
00338 
00342     cinterval& operator[](const int i) {
00343 #if(CXSC_INDEX_CHECK)
00344       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator[](const int)"));
00345 #endif
00346       int k;
00347 
00348       for(k=0 ; k<get_nnz() && p[k]<=i-lb ; k++) {
00349         if(p[k] == i-lb) 
00350           return x[k];
00351       }
00352 
00353       p.insert(p.begin() + k, i-lb);
00354       x.insert(x.begin() + k, cinterval(0.0));
00355 
00356       return x[k];
00357     }
00358 
00360 
00364     cinterval operator[](const int i) const {
00365 #if(CXSC_INDEX_CHECK)
00366       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator[](const int)"));
00367 #endif
00368       return (*this)(i);
00369     }
00370 
00372 
00376     const cinterval operator()(const int i) const {
00377 #if(CXSC_INDEX_CHECK)
00378       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector::operator()(const int)"));
00379 #endif
00380       cinterval r(0.0);
00381 
00382       for(int k=0 ; k<get_nnz() && p[k]<=i-lb ; k++) {
00383         if(p[k] == i-lb) 
00384           r = x[k];
00385       }
00386 
00387       return r; 
00388     }
00389 
00391 
00394     scivector operator()(const intvector& per) {
00395       scivector v(n,get_nnz());
00396       intvector pinv = perminv(per);
00397 
00398       std::map<int,cinterval> work;
00399       for(int i=0 ; i<get_nnz() ; i++)
00400          work.insert(std::make_pair(pinv[Lb(pinv)+p[i]], x[i]));
00401  
00402       for(std::map<int,cinterval>::iterator it=work.begin() ; it!=work.end() ; it++) {
00403          v.p.push_back(it->first);
00404          v.x.push_back(it->second);
00405       }
00406 
00407       return v;
00408     }
00409 
00411 
00417     scivector operator()(const intmatrix& P) {
00418       intvector p = permvec(P);
00419       return (*this)(p);
00420     }
00421 
00423 
00425     scivector_slice operator()(const int, const int);
00426 
00428     scivector& operator*=(const real& s) {
00429       return sp_vs_multassign(*this,s);
00430     }
00431 
00433     scivector& operator*=(const complex& s) {
00434       return sp_vs_multassign(*this,s);
00435     }
00436 
00438     scivector& operator*=(const interval& s) {
00439       return sp_vs_multassign(*this,s);
00440     }
00441 
00443     scivector& operator*=(const cinterval& s) {
00444       return sp_vs_multassign(*this,s);
00445     }
00446 
00448     scivector& operator/=(const real& s) {
00449       return sp_vs_divassign(*this,s);
00450     }
00451 
00453     scivector& operator/=(const complex& s) {
00454       return sp_vs_divassign(*this,s);
00455     }
00456 
00458     scivector& operator/=(const interval& s) {
00459       return sp_vs_divassign(*this,s);
00460     }
00461 
00463     scivector& operator/=(const cinterval& s) {
00464       return sp_vs_divassign(*this,s);
00465     }
00466 
00468     scivector& operator+=(const rvector& v) {
00469       return spf_vv_addassign(*this,v);
00470     }
00471 
00473     scivector& operator+=(const cvector& v) {
00474       return spf_vv_addassign(*this,v);
00475     }
00476 
00478     scivector& operator+=(const ivector& v) {
00479       return spf_vv_addassign(*this,v);
00480     }
00481 
00483     scivector& operator+=(const civector& v) {
00484       return spf_vv_addassign(*this,v);
00485     }
00486 
00488     scivector& operator+=(const rvector_slice& v) {
00489       return spf_vv_addassign(*this,v);
00490     }
00491 
00493     scivector& operator+=(const cvector_slice& v) {
00494       return spf_vv_addassign(*this,v);
00495     }
00496 
00498     scivector& operator+=(const ivector_slice& v) {
00499       return spf_vv_addassign(*this,v);
00500     }
00501 
00503     scivector& operator+=(const civector_slice& v) {
00504       return spf_vv_addassign(*this,v);
00505     }
00506 
00508     scivector& operator+=(const srvector& v) {
00509       return spsp_vv_addassign(*this,v);
00510     }
00511 
00513     scivector& operator+=(const scvector& v) {
00514       return spsp_vv_addassign(*this,v);
00515     }
00516 
00518     scivector& operator+=(const sivector& v) {
00519       return spsp_vv_addassign(*this,v);
00520     }
00521 
00523     scivector& operator+=(const scivector& v) {
00524       return spsp_vv_addassign(*this,v);
00525     }
00526 
00528     scivector& operator-=(const rvector& v) {
00529       return spf_vv_subassign(*this,v);
00530     }
00531 
00533     scivector& operator-=(const cvector& v) {
00534       return spf_vv_subassign(*this,v);
00535     }
00536 
00538     scivector& operator-=(const ivector& v) {
00539       return spf_vv_subassign(*this,v);
00540     }
00541 
00543     scivector& operator-=(const civector& v) {
00544       return spf_vv_subassign(*this,v);
00545     }
00546 
00548     scivector& operator-=(const rvector_slice& v) {
00549       return spf_vv_subassign(*this,v);
00550     }
00551 
00553     scivector& operator-=(const cvector_slice& v) {
00554       return spf_vv_subassign(*this,v);
00555     }
00556 
00558     scivector& operator-=(const ivector_slice& v) {
00559       return spf_vv_subassign(*this,v);
00560     }
00561 
00563     scivector& operator-=(const civector_slice& v) {
00564       return spf_vv_subassign(*this,v);
00565     }
00566 
00568     scivector& operator-=(const srvector& v) {
00569       return spsp_vv_subassign(*this,v);
00570     }
00571 
00573     scivector& operator-=(const scvector& v) {
00574       return spsp_vv_subassign(*this,v);
00575     }
00576 
00578     scivector& operator-=(const sivector& v) {
00579       return spsp_vv_subassign(*this,v);
00580     }
00581 
00583     scivector& operator-=(const scivector& v) {
00584       return spsp_vv_subassign(*this,v);
00585     }
00586 
00588     scivector& operator|=(const rvector& v) {
00589       return spf_vv_hullassign(*this,v);
00590     }
00591 
00593     scivector& operator|=(const cvector& v) {
00594       return spf_vv_hullassign(*this,v);
00595     }
00596 
00598     scivector& operator|=(const ivector& v) {
00599       return spf_vv_hullassign(*this,v);
00600     }
00601 
00603     scivector& operator|=(const civector& v) {
00604       return spf_vv_hullassign(*this,v);
00605     }
00606 
00608     scivector& operator|=(const rvector_slice& v) {
00609       return spf_vv_hullassign(*this,v);
00610     }
00611 
00613     scivector& operator|=(const cvector_slice& v) {
00614       return spf_vv_hullassign(*this,v);
00615     }
00616 
00618     scivector& operator|=(const ivector_slice& v) {
00619       return spf_vv_hullassign(*this,v);
00620     }
00621 
00623     scivector& operator|=(const civector_slice& v) {
00624       return spf_vv_hullassign(*this,v);
00625     }
00626 
00628     scivector& operator|=(const srvector& v) {
00629       return spsp_vv_hullassign(*this,v);
00630     }
00631 
00633     scivector& operator|=(const scvector& v) {
00634       return spsp_vv_hullassign(*this,v);
00635     }
00636 
00638     scivector& operator|=(const sivector& v) {
00639       return spsp_vv_hullassign(*this,v);
00640     }
00641 
00643     scivector& operator|=(const scivector& v) {
00644       return spsp_vv_hullassign(*this,v);
00645     }
00646 
00648     scivector& operator&=(const ivector& v) {
00649       return spf_vv_intersectassign(*this,v);
00650     }
00651 
00653     scivector& operator&=(const civector& v) {
00654       return spf_vv_intersectassign(*this,v);
00655     }
00656 
00658     scivector& operator&=(const ivector_slice& v) {
00659       return spf_vv_intersectassign(*this,v);
00660     }
00661 
00663     scivector& operator&=(const civector_slice& v) {
00664       return spf_vv_intersectassign(*this,v);
00665     }
00666 
00668     scivector& operator&=(const sivector& v) {
00669       return spsp_vv_intersectassign(*this,v);
00670     }
00671 
00673     scivector& operator&=(const scivector& v) {
00674       return spsp_vv_intersectassign(*this,v);
00675     }
00676 
00677 
00679     scivector& operator+=(const srvector_slice&);
00681     scivector& operator+=(const scvector_slice&);
00683     scivector& operator+=(const sivector_slice&);
00685     scivector& operator+=(const scivector_slice&);
00687     scivector& operator-=(const srvector_slice&);
00689     scivector& operator-=(const scvector_slice&);
00691     scivector& operator-=(const sivector_slice&);
00693     scivector& operator-=(const scivector_slice&);
00695     scivector& operator|=(const srvector_slice&);
00697     scivector& operator|=(const scvector_slice&);
00699     scivector& operator|=(const sivector_slice&);
00701     scivector& operator|=(const scivector_slice&);
00703     scivector& operator&=(const sivector_slice&);
00705     scivector& operator&=(const scivector_slice&);
00706 
00707     friend void SetLb(scivector&, const int);
00708     friend void SetUb(scivector&, const int);
00709     friend int Lb(const scivector&);
00710     friend int Ub(const scivector&);
00711     friend sivector Re(const scivector&);
00712     friend sivector Im(const scivector&);
00713     friend scvector Inf(const scivector&);
00714     friend scvector Sup(const scivector&);
00715     friend srvector InfRe(const scivector&);
00716     friend srvector InfIm(const scivector&);
00717     friend srvector SupRe(const scivector&);
00718     friend srvector SupIm(const scivector&);
00719     friend scivector conj(const scivector&);
00720     friend scivector conj(const scivector_slice&);
00721     friend sivector abs(const scivector&);
00722     friend scvector mid(const scivector&);
00723     friend scvector diam(const scivector&);
00724     friend int VecLen(const scivector&);
00725 
00726     friend class srvector_slice;
00727     friend class scvector_slice;
00728     friend class sivector_slice;
00729     friend class scivector_slice;
00730     friend class civector;
00731     friend class civector_slice;
00732 
00733 #include "vector_friend_declarations.inl"
00734 };
00735 
00736 inline civector::civector(const srvector& v) {
00737   l = v.lb;
00738   u = v.ub;
00739   size = v.n;
00740   dat = new cinterval[v.n];
00741   for(int i=0 ; i<v.n ; i++)
00742     dat[i] = 0.0;
00743   for(int i=0 ; i<v.get_nnz() ; i++)
00744     dat[v.p[i]] = v.x[i];
00745 }
00746 
00747 inline civector::civector(const scvector& v) {
00748   l = v.lb;
00749   u = v.ub;
00750   size = v.n;
00751   dat = new cinterval[v.n];
00752   for(int i=0 ; i<v.n ; i++)
00753     dat[i] = 0.0;
00754   for(int i=0 ; i<v.get_nnz() ; i++)
00755     dat[v.p[i]] = v.x[i];
00756 }
00757 
00758 inline civector::civector(const sivector& v) {
00759   l = v.lb;
00760   u = v.ub;
00761   size = v.n;
00762   dat = new cinterval[v.n];
00763   for(int i=0 ; i<v.n ; i++)
00764     dat[i] = 0.0;
00765   for(int i=0 ; i<v.get_nnz() ; i++)
00766     dat[v.p[i]] = v.x[i];
00767 }
00768 
00769 inline civector::civector(const scivector& v) {
00770   l = v.lb;
00771   u = v.ub;
00772   size = v.n;
00773   dat = new cinterval[v.n];
00774   for(int i=0 ; i<v.n ; i++)
00775     dat[i] = 0.0;
00776   for(int i=0 ; i<v.get_nnz() ; i++)
00777     dat[v.p[i]] = v.x[i];
00778 }
00779 
00780 inline civector& civector::operator=(const scivector& v) {
00781   return fsp_vv_assign<civector,scivector,cinterval>(*this,v);
00782 }
00783 
00784 inline civector& civector::operator=(const scivector_slice& v) {
00785   return fsl_vv_assign<civector,scivector_slice,cinterval>(*this,v);
00786 }
00787 
00788 inline civector& civector::operator=(const srvector& v) {
00789   return fsp_vv_assign<civector,srvector,cinterval>(*this,v);
00790 }
00791 
00792 inline civector& civector::operator=(const srvector_slice& v) {
00793   return fsl_vv_assign<civector,srvector_slice,cinterval>(*this,v);
00794 }
00795 
00796 inline civector& civector::operator=(const scvector& v) {
00797   return fsp_vv_assign<civector,scvector,cinterval>(*this,v);
00798 }
00799 
00800 inline civector& civector::operator=(const scvector_slice& v) {
00801   return fsl_vv_assign<civector,scvector_slice,cinterval>(*this,v);
00802 }
00803 
00804 inline civector& civector::operator=(const sivector& v) {
00805   return fsp_vv_assign<civector,sivector,cinterval>(*this,v);
00806 }
00807 
00808 inline civector& civector::operator=(const sivector_slice& v) {
00809   return fsl_vv_assign<civector,sivector_slice,cinterval>(*this,v);
00810 }
00811 
00812 
00814 
00817 inline void SetLb(scivector& v, const int i) {
00818   v.lb = i;
00819   v.ub = v.lb + v.n - 1;
00820 }
00821 
00823 
00826 inline void SetUb(scivector& v, const int j) {
00827   v.ub = j;
00828   v.lb = v.ub - v.n + 1;
00829 }
00830 
00832 inline int Lb(const scivector& v) {
00833   return v.lb;
00834 }
00835 
00837 inline int Ub(const scivector& v) {
00838   return v.ub;
00839 }
00840 
00842 inline void Resize(scivector& v) {
00843   sp_v_resize(v);
00844 }
00845 
00847 
00850 inline void Resize(scivector& v, const int n) {
00851   sp_v_resize(v,n);
00852 }
00853 
00855 
00859 inline void Resize(scivector& v, const int l, const int u) {
00860   sp_v_resize(v,l,u);
00861 }
00862 
00864 inline sivector abs(const scivector& v) {
00865   sivector res(v.n, v.get_nnz());
00866   res.lb = v.lb;
00867   res.ub = v.ub;
00868   res.p = v.p;
00869   for(int i=0 ; i<v.get_nnz() ; i++)
00870     res.x.push_back(abs(v.x[i]));
00871   return res;
00872 }
00873 
00875 inline scivector conj(const scivector& v) {
00876   scivector res(v.n, v.get_nnz());
00877   res.lb = v.lb;
00878   res.ub = v.ub;
00879   res.p = v.p;
00880   for(int i=0 ; i<v.get_nnz() ; i++)
00881     res.x.push_back(conj(v.x[i]));
00882   return res;
00883 }
00884 
00886 inline scvector mid(const scivector& v) {
00887   scvector res(v.n, v.get_nnz());
00888   res.lb = v.lb;
00889   res.ub = v.ub;
00890   res.p = v.p;
00891   for(int i=0 ; i<v.get_nnz() ; i++)
00892     res.x.push_back(mid(v.x[i]));
00893   return res;
00894 }
00895 
00897 inline scvector diam(const scivector& v) {
00898   scvector res(v.n, v.get_nnz());
00899   res.lb = v.lb;
00900   res.ub = v.ub;
00901   res.p = v.p;
00902   for(int i=0 ; i<v.get_nnz() ; i++)
00903     res.x.push_back(diam(v.x[i]));
00904   return res;
00905 }
00906 
00908 inline sivector Re(const scivector& v) {
00909   sivector res(v.n, v.get_nnz());
00910   res.lb = v.lb;
00911   res.ub = v.ub;
00912   res.p  = v.p;
00913   for(int i=0 ; i<v.get_nnz() ; i++)
00914     res.x[i] = Re(v.x[i]);
00915   return res;
00916 }
00917 
00919 inline sivector Im(const scivector& v) {
00920   sivector res(v.n, v.get_nnz());
00921   res.lb = v.lb;
00922   res.ub = v.ub;
00923   res.p  = v.p;
00924   for(int i=0 ; i<v.get_nnz() ; i++)
00925     res.x[i] = Im(v.x[i]);
00926   return res;
00927 }
00928 
00930 inline scvector Inf(const scivector& v) {
00931   scvector res(v.n, v.get_nnz());
00932   res.lb = v.lb;
00933   res.ub = v.ub;
00934   res.p  = v.p;
00935   for(int i=0 ; i<v.get_nnz() ; i++)
00936     res.x[i] = Inf(v.x[i]);
00937   return res;
00938 }
00939 
00941 inline scvector Sup(const scivector& v) {
00942   scvector res(v.n, v.get_nnz());
00943   res.lb = v.lb;
00944   res.ub = v.ub;
00945   res.p  = v.p;
00946   for(int i=0 ; i<v.get_nnz() ; i++)
00947     res.x[i] = Sup(v.x[i]);
00948   return res;
00949 }
00950 
00952 inline srvector InfRe(const scivector& v) {
00953   srvector res(v.n, v.get_nnz());
00954   res.lb = v.lb;
00955   res.ub = v.ub;
00956   res.p  = v.p;
00957   for(int i=0 ; i<v.get_nnz() ; i++)
00958     res.x[i] = InfRe(v.x[i]);
00959   return res;
00960 }
00961 
00963 inline srvector InfIm(const scivector& v) {
00964   srvector res(v.n, v.get_nnz());
00965   res.lb = v.lb;
00966   res.ub = v.ub;
00967   res.p  = v.p;
00968   for(int i=0 ; i<v.get_nnz() ; i++)
00969     res.x[i] = InfIm(v.x[i]);
00970   return res;
00971 }
00972 
00974 inline srvector SupRe(const scivector& v) {
00975   srvector res(v.n, v.get_nnz());
00976   res.lb = v.lb;
00977   res.ub = v.ub;
00978   res.p  = v.p;
00979   for(int i=0 ; i<v.get_nnz() ; i++)
00980     res.x[i] = SupRe(v.x[i]);
00981   return res;
00982 }
00983 
00985 inline srvector SupIm(const scivector& v) {
00986   srvector res(v.n, v.get_nnz());
00987   res.lb = v.lb;
00988   res.ub = v.ub;
00989   res.p  = v.p;
00990   for(int i=0 ; i<v.get_nnz() ; i++)
00991     res.x[i] = SupIm(v.x[i]);
00992   return res;
00993 }
00994 
00996 inline int VecLen(const scivector& v) {
00997   return v.n;
00998 }
00999 
01001 inline bool in (const scivector& v1, const scivector& v2) {
01002   for(int i=0 ; i<VecLen(v1) ; i++)
01003     if(!in(v1(i+Lb(v1)), v2(i+Lb(v2)))) return false;
01004   return true;
01005 }
01006 
01008 inline scivector operator-(const scivector& v) {
01009   return sp_v_negative(v);
01010 }
01011 
01013 
01019 inline cinterval operator*(const scivector& v1, const cvector& v2) {
01020   return spf_vv_mult<scivector,cvector,cinterval,sparse_cidot>(v1,v2);
01021 }
01022 
01024 
01030 inline cinterval operator*(const scivector& v1, const rvector& v2) {
01031   return spf_vv_mult<scivector,rvector,cinterval,sparse_cidot>(v1,v2);
01032 }
01033 
01035 
01041 inline cinterval operator*(const scivector& v1, const ivector& v2) {
01042   return spf_vv_mult<scivector,ivector,cinterval,sparse_cidot>(v1,v2);
01043 }
01044 
01046 
01052 inline cinterval operator*(const scivector& v1, const civector& v2) {
01053   return spf_vv_mult<scivector,civector,cinterval,sparse_cidot>(v1,v2);
01054 }
01055 
01057 
01063 inline cinterval operator*(const scvector& v1, const civector& v2) {
01064   return spf_vv_mult<scvector,civector,cinterval,sparse_cidot>(v1,v2);
01065 }
01066 
01068 
01074 inline cinterval operator*(const srvector& v1, const civector& v2) {
01075   return spf_vv_mult<srvector,civector,cinterval,sparse_cidot>(v1,v2);
01076 }
01077 
01079 
01085 inline cinterval operator*(const sivector& v1, const civector& v2) {
01086   return spf_vv_mult<sivector,civector,cinterval,sparse_cidot>(v1,v2);
01087 }
01088 
01090 
01096 inline cinterval operator*(const scvector& v1, const ivector& v2) {
01097   return spf_vv_mult<scvector,ivector,cinterval,sparse_cidot>(v1,v2);
01098 }
01099 
01101 
01107 inline cinterval operator*(const sivector& v1, const cvector& v2) {
01108   return spf_vv_mult<sivector,cvector,cinterval,sparse_cidot>(v1,v2);
01109 }
01110 
01112 
01118 inline cinterval operator*(const rvector& v1, const scivector& v2) {
01119   return fsp_vv_mult<rvector,scivector,cinterval,sparse_cidot>(v1,v2);
01120 }
01121 
01123 
01129 inline cinterval operator*(const cvector& v1, const scivector& v2) {
01130   return fsp_vv_mult<cvector,scivector,cinterval,sparse_cidot>(v1,v2);
01131 }
01132 
01134 
01140 inline cinterval operator*(const ivector& v1, const scivector& v2) {
01141   return fsp_vv_mult<ivector,scivector,cinterval,sparse_cidot>(v1,v2);
01142 }
01143 
01145 
01151 inline cinterval operator*(const civector& v1, const scivector& v2) {
01152   return fsp_vv_mult<civector,scivector,cinterval,sparse_cidot>(v1,v2);
01153 }
01154 
01156 
01162 inline cinterval operator*(const civector& v1, const srvector& v2) {
01163   return fsp_vv_mult<civector,srvector,cinterval,sparse_cidot>(v1,v2);
01164 }
01165 
01167 
01173 inline cinterval operator*(const civector& v1, const scvector& v2) {
01174   return fsp_vv_mult<civector,scvector,cinterval,sparse_cidot>(v1,v2);
01175 }
01176 
01178 
01184 inline cinterval operator*(const civector& v1, const sivector& v2) {
01185   return fsp_vv_mult<civector,sivector,cinterval,sparse_cidot>(v1,v2);
01186 }
01187 
01189 
01195 inline cinterval operator*(const ivector& v1, const scvector& v2) {
01196   return fsp_vv_mult<ivector,scvector,cinterval,sparse_cidot>(v1,v2);
01197 }
01198 
01200 
01206 inline cinterval operator*(const cvector& v1, const sivector& v2) {
01207   return fsp_vv_mult<cvector,sivector,cinterval,sparse_cidot>(v1,v2);
01208 }
01209 
01211 
01217 inline cinterval operator*(const scivector& v1, const cvector_slice& v2) {
01218   return spf_vv_mult<scivector,cvector_slice,cinterval,sparse_cidot>(v1,v2);
01219 }
01220 
01222 
01228 inline cinterval operator*(const scivector& v1, const rvector_slice& v2) {
01229   return spf_vv_mult<scivector,rvector_slice,cinterval,sparse_cidot>(v1,v2);
01230 }
01231 
01233 
01239 inline cinterval operator*(const scivector& v1, const ivector_slice& v2) {
01240   return spf_vv_mult<scivector,ivector_slice,cinterval,sparse_cidot>(v1,v2);
01241 }
01242 
01244 
01250 inline cinterval operator*(const scivector& v1, const civector_slice& v2) {
01251   return spf_vv_mult<scivector,civector_slice,cinterval,sparse_cidot>(v1,v2);
01252 }
01253 
01255 
01261 inline cinterval operator*(const scvector& v1, const civector_slice& v2) {
01262   return spf_vv_mult<scvector,civector_slice,cinterval,sparse_cidot>(v1,v2);
01263 }
01264 
01266 
01272 inline cinterval operator*(const srvector& v1, const civector_slice& v2) {
01273   return spf_vv_mult<srvector,civector_slice,cinterval,sparse_cidot>(v1,v2);
01274 }
01275 
01277 
01283 inline cinterval operator*(const sivector& v1, const civector_slice& v2) {
01284   return spf_vv_mult<sivector,civector_slice,cinterval,sparse_cidot>(v1,v2);
01285 }
01286 
01288 
01294 inline cinterval operator*(const scvector& v1, const ivector_slice& v2) {
01295   return spf_vv_mult<scvector,ivector_slice,cinterval,sparse_cidot>(v1,v2);
01296 }
01297 
01299 
01305 inline cinterval operator*(const sivector& v1, const cvector_slice& v2) {
01306   return spf_vv_mult<sivector,cvector_slice,cinterval,sparse_cidot>(v1,v2);
01307 }
01308 
01310 
01316 inline cinterval operator*(const rvector_slice& v1, const scivector& v2) {
01317   return fsp_vv_mult<rvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
01318 }
01319 
01321 
01327 inline cinterval operator*(const cvector_slice& v1, const scivector& v2) {
01328   return fsp_vv_mult<cvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
01329 }
01330 
01332 
01338 inline cinterval operator*(const ivector_slice& v1, const scivector& v2) {
01339   return fsp_vv_mult<ivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
01340 }
01341 
01343 
01349 inline cinterval operator*(const civector_slice& v1, const scivector& v2) {
01350   return fsp_vv_mult<civector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
01351 }
01352 
01354 
01360 inline cinterval operator*(const civector_slice& v1, const srvector& v2) {
01361   return fsp_vv_mult<civector_slice,srvector,cinterval,sparse_cidot>(v1,v2);
01362 }
01363 
01365 
01371 inline cinterval operator*(const civector_slice& v1, const scvector& v2) {
01372   return fsp_vv_mult<civector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
01373 }
01374 
01376 
01382 inline cinterval operator*(const civector_slice& v1, const sivector& v2) {
01383   return fsp_vv_mult<civector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
01384 }
01385 
01387 
01393 inline cinterval operator*(const ivector_slice& v1, const scvector& v2) {
01394   return fsp_vv_mult<ivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
01395 }
01396 
01398 
01404 inline cinterval operator*(const cvector_slice& v1, const sivector& v2) {
01405   return fsp_vv_mult<cvector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
01406 }
01407 
01409 
01415 inline cinterval operator*(const scivector& v1, const srvector& v2) {
01416   return spsp_vv_mult<scivector,srvector,cinterval,sparse_cidot>(v1,v2);
01417 }
01418 
01420 
01426 inline cinterval operator*(const scivector& v1, const scvector& v2) {
01427   return spsp_vv_mult<scivector,scvector,cinterval,sparse_cidot>(v1,v2);
01428 }
01429 
01431 
01437 inline cinterval operator*(const scivector& v1, const sivector& v2) {
01438   return spsp_vv_mult<scivector,sivector,cinterval,sparse_cidot>(v1,v2);
01439 }
01440 
01442 
01448 inline cinterval operator*(const scivector& v1, const scivector& v2) {
01449   return spsp_vv_mult<scivector,scivector,cinterval,sparse_cidot>(v1,v2);
01450 }
01451 
01453 
01459 inline cinterval operator*(const srvector& v1, const scivector& v2) {
01460   return spsp_vv_mult<srvector,scivector,cinterval,sparse_cidot>(v1,v2);
01461 }
01462 
01464 
01470 inline cinterval operator*(const scvector& v1, const scivector& v2) {
01471   return spsp_vv_mult<scvector,scivector,cinterval,sparse_cidot>(v1,v2);
01472 }
01473 
01475 
01481 inline cinterval operator*(const sivector& v1, const scivector& v2) {
01482   return spsp_vv_mult<sivector,scivector,cinterval,sparse_cidot>(v1,v2);
01483 }
01484 
01486 
01492 inline cinterval operator*(const scvector& v1, const sivector& v2) {
01493   return spsp_vv_mult<scvector,sivector,cinterval,sparse_cidot>(v1,v2);
01494 }
01495 
01497 
01503 inline cinterval operator*(const sivector& v1, const scvector& v2) {
01504   return spsp_vv_mult<sivector,scvector,cinterval,sparse_cidot>(v1,v2);
01505 }
01506 
01508 inline scivector operator*(const scivector& v, const real& s) {
01509   return sp_vs_mult<scivector,real,scivector>(v,s);
01510 }
01511 
01513 inline scivector operator*(const scivector& v, const complex& s) {
01514   return sp_vs_mult<scivector,complex,scivector>(v,s);
01515 }
01516 
01518 inline scivector operator*(const scivector& v, const interval& s) {
01519   return sp_vs_mult<scivector,interval,scivector>(v,s);
01520 }
01521 
01523 inline scivector operator*(const scivector& v, const cinterval& s) {
01524   return sp_vs_mult<scivector,cinterval,scivector>(v,s);
01525 }
01526 
01528 inline scivector operator*(const scvector& v, const interval& s) {
01529   return sp_vs_mult<scvector,interval,scivector>(v,s);
01530 }
01531 
01533 inline scivector operator*(const sivector& v, const complex& s) {
01534   return sp_vs_mult<sivector,complex,scivector>(v,s);
01535 }
01536 
01538 inline scivector operator/(const scivector& v, const real& s) {
01539   return sp_vs_div<scivector,real,scivector>(v,s);
01540 }
01541 
01543 inline scivector operator/(const scivector& v, const complex& s) {
01544   return sp_vs_div<scivector,complex,scivector>(v,s);
01545 }
01546 
01548 inline scivector operator/(const scivector& v, const interval& s) {
01549   return sp_vs_div<scivector,interval,scivector>(v,s);
01550 }
01551 
01553 inline scivector operator/(const scivector& v, const cinterval& s) {
01554   return sp_vs_div<scivector,cinterval,scivector>(v,s);
01555 }
01556 
01558 inline scivector operator/(const srvector& v, const cinterval& s) {
01559   return sp_vs_div<srvector,cinterval,scivector>(v,s);
01560 }
01561 
01563 inline scivector operator/(const scvector& v, const cinterval& s) {
01564   return sp_vs_div<scvector,cinterval,scivector>(v,s);
01565 }
01566 
01568 inline scivector operator/(const sivector& v, const cinterval& s) {
01569   return sp_vs_div<sivector,cinterval,scivector>(v,s);
01570 }
01571 
01573 inline scivector operator/(const scvector& v, const interval& s) {
01574   return sp_vs_div<scvector,interval,scivector>(v,s);
01575 }
01576 
01578 inline scivector operator/(const sivector& v, const complex& s) {
01579   return sp_vs_div<sivector,complex,scivector>(v,s);
01580 }
01581 
01583 inline scivector operator*(const real& s, const scivector& v) {
01584   return sp_sv_mult<real,scivector,scivector>(s,v);
01585 }
01586 
01588 inline scivector operator*(const complex& s, const scivector& v) {
01589   return sp_sv_mult<complex,scivector,scivector>(s,v);
01590 }
01591 
01593 inline scivector operator*(const interval& s, const scivector& v) {
01594   return sp_sv_mult<interval,scivector,scivector>(s,v);
01595 }
01596 
01598 inline scivector operator*(const cinterval& s, const srvector& v) {
01599   return sp_sv_mult<cinterval,srvector,scivector>(s,v);
01600 }
01601 
01603 inline scivector operator*(const cinterval& s, const sivector& v) {
01604   return sp_sv_mult<cinterval,sivector,scivector>(s,v);
01605 }
01606 
01608 inline scivector operator*(const cinterval& s, const scvector& v) {
01609   return sp_sv_mult<cinterval,scvector,scivector>(s,v);
01610 }
01611 
01613 inline scivector operator*(const cinterval& s, const scivector& v) {
01614   return sp_sv_mult<cinterval,scivector,scivector>(s,v);
01615 }
01616 
01618 inline scivector operator*(const srvector& v, const cinterval& s) {
01619   return sp_sv_mult<cinterval,srvector,scivector>(s,v);
01620 }
01621 
01623 inline scivector operator*(const sivector& v, const cinterval& s) {
01624   return sp_sv_mult<cinterval,sivector,scivector>(s,v);
01625 }
01626 
01628 inline scivector operator*(const scvector& v, const cinterval& s) {
01629   return sp_sv_mult<cinterval,scvector,scivector>(s,v);
01630 }
01631 
01633 inline scivector operator*(const complex& s, const sivector& v) {
01634   return sp_sv_mult<complex,sivector,scivector>(s,v);
01635 }
01636 
01638 inline scivector operator*(const interval& s, const scvector& v) {
01639   return sp_sv_mult<interval,scvector,scivector>(s,v);
01640 }
01641 
01643 inline civector operator+(const civector& v1, const srvector& v2) {
01644   return fsp_vv_add<civector,srvector,civector>(v1,v2);
01645 }
01646 
01648 inline civector operator+(const civector& v1, const scvector& v2) {
01649   return fsp_vv_add<civector,scvector,civector>(v1,v2);
01650 }
01651 
01653 inline civector operator+(const civector& v1, const sivector& v2) {
01654   return fsp_vv_add<civector,sivector,civector>(v1,v2);
01655 }
01656 
01658 inline civector operator+(const civector& v1, const scivector& v2) {
01659   return fsp_vv_add<civector,scivector,civector>(v1,v2);
01660 }
01661 
01663 inline civector operator+(const rvector& v1, const scivector& v2) {
01664   return fsp_vv_add<rvector,scivector,civector>(v1,v2);
01665 }
01666 
01668 inline civector operator+(const cvector& v1, const scivector& v2) {
01669   return fsp_vv_add<cvector,scivector,civector>(v1,v2);
01670 }
01671 
01673 inline civector operator+(const ivector& v1, const scivector& v2) {
01674   return fsp_vv_add<ivector,scivector,civector>(v1,v2);
01675 }
01676 
01678 inline civector operator+(const cvector& v1, const sivector& v2) {
01679   return fsp_vv_add<cvector,sivector,civector>(v1,v2);
01680 }
01681 
01683 inline civector operator+(const ivector& v1, const scvector& v2) {
01684   return fsp_vv_add<ivector,scvector,civector>(v1,v2);
01685 }
01686 
01688 inline civector operator+(const scivector& v1, const rvector& v2) {
01689   return spf_vv_add<scivector,rvector,civector>(v1,v2);
01690 }
01691 
01693 inline civector operator+(const scivector& v1, const cvector& v2) {
01694   return spf_vv_add<scivector,cvector,civector>(v1,v2);
01695 }
01696 
01698 inline civector operator+(const scivector& v1, const ivector& v2) {
01699   return spf_vv_add<scivector,ivector,civector>(v1,v2);
01700 }
01701 
01703 inline civector operator+(const scivector& v1, const civector& v2) {
01704   return spf_vv_add<scivector,civector,civector>(v1,v2);
01705 }
01706 
01708 inline civector operator+(const srvector& v1, const civector& v2) {
01709   return spf_vv_add<srvector,civector,civector>(v1,v2);
01710 }
01711 
01713 inline civector operator+(const scvector& v1, const civector& v2) {
01714   return spf_vv_add<scvector,civector,civector>(v1,v2);
01715 }
01716 
01718 inline civector operator+(const sivector& v1, const civector& v2) {
01719   return spf_vv_add<sivector,civector,civector>(v1,v2);
01720 }
01721 
01723 inline civector operator+(const scvector& v1, const ivector& v2) {
01724   return spf_vv_add<scvector,ivector,civector>(v1,v2);
01725 }
01726 
01728 inline civector operator+(const sivector& v1, const cvector& v2) {
01729   return spf_vv_add<sivector,cvector,civector>(v1,v2);
01730 }
01731 
01733 inline civector operator+(const civector_slice& v1, const srvector& v2) {
01734   return fsp_vv_add<civector_slice,srvector,civector>(v1,v2);
01735 }
01736 
01738 inline civector operator+(const civector_slice& v1, const scvector& v2) {
01739   return fsp_vv_add<civector_slice,scvector,civector>(v1,v2);
01740 }
01741 
01743 inline civector operator+(const civector_slice& v1, const sivector& v2) {
01744   return fsp_vv_add<civector_slice,sivector,civector>(v1,v2);
01745 }
01746 
01748 inline civector operator+(const civector_slice& v1, const scivector& v2) {
01749   return fsp_vv_add<civector_slice,scivector,civector>(v1,v2);
01750 }
01751 
01753 inline civector operator+(const rvector_slice& v1, const scivector& v2) {
01754   return fsp_vv_add<rvector_slice,scivector,civector>(v1,v2);
01755 }
01756 
01758 inline civector operator+(const cvector_slice& v1, const scivector& v2) {
01759   return fsp_vv_add<cvector_slice,scivector,civector>(v1,v2);
01760 }
01761 
01763 inline civector operator+(const ivector_slice& v1, const scivector& v2) {
01764   return fsp_vv_add<ivector_slice,scivector,civector>(v1,v2);
01765 }
01766 
01768 inline civector operator+(const cvector_slice& v1, const sivector& v2) {
01769   return fsp_vv_add<cvector_slice,sivector,civector>(v1,v2);
01770 }
01771 
01773 inline civector operator+(const ivector_slice& v1, const scvector& v2) {
01774   return fsp_vv_add<ivector_slice,scvector,civector>(v1,v2);
01775 }
01776 
01778 inline civector operator+(const scivector& v1, const rvector_slice& v2) {
01779   return spf_vv_add<scivector,rvector_slice,civector>(v1,v2);
01780 }
01781 
01783 inline civector operator+(const scivector& v1, const cvector_slice& v2) {
01784   return spf_vv_add<scivector,cvector_slice,civector>(v1,v2);
01785 }
01786 
01788 inline civector operator+(const scivector& v1, const ivector_slice& v2) {
01789   return spf_vv_add<scivector,ivector_slice,civector>(v1,v2);
01790 }
01791 
01793 inline civector operator+(const scivector& v1, const civector_slice& v2) {
01794   return spf_vv_add<scivector,civector_slice,civector>(v1,v2);
01795 }
01796 
01798 inline civector operator+(const srvector& v1, const civector_slice& v2) {
01799   return spf_vv_add<srvector,civector_slice,civector>(v1,v2);
01800 }
01801 
01803 inline civector operator+(const scvector& v1, const civector_slice& v2) {
01804   return spf_vv_add<scvector,civector_slice,civector>(v1,v2);
01805 }
01806 
01808 inline civector operator+(const sivector& v1, const civector_slice& v2) {
01809   return spf_vv_add<sivector,civector_slice,civector>(v1,v2);
01810 }
01811 
01813 inline civector operator+(const scvector& v1, const ivector_slice& v2) {
01814   return spf_vv_add<scvector,ivector_slice,civector>(v1,v2);
01815 }
01816 
01818 inline civector operator+(const sivector& v1, const cvector_slice& v2) {
01819   return spf_vv_add<sivector,cvector_slice,civector>(v1,v2);
01820 }
01821 
01823 inline scivector operator+(const scivector& v1, const srvector& v2) {
01824   return spsp_vv_add<scivector,srvector,scivector,cinterval>(v1,v2);
01825 }
01826 
01828 inline scivector operator+(const scivector& v1, const scvector& v2) {
01829   return spsp_vv_add<scivector,scvector,scivector,cinterval>(v1,v2);
01830 }
01831 
01833 inline scivector operator+(const scivector& v1, const sivector& v2) {
01834   return spsp_vv_add<scivector,sivector,scivector,cinterval>(v1,v2);
01835 }
01836 
01838 inline scivector operator+(const scivector& v1, const scivector& v2) {
01839   return spsp_vv_add<scivector,scivector,scivector,cinterval>(v1,v2);
01840 }
01841 
01843 inline scivector operator+(const srvector& v1, const scivector& v2) {
01844   return spsp_vv_add<srvector,scivector,scivector,cinterval>(v1,v2);
01845 }
01846 
01848 inline scivector operator+(const scvector& v1, const scivector& v2) {
01849   return spsp_vv_add<scvector,scivector,scivector,cinterval>(v1,v2);
01850 }
01851 
01853 inline scivector operator+(const sivector& v1, const scivector& v2) {
01854   return spsp_vv_add<sivector,scivector,scivector,cinterval>(v1,v2);
01855 }
01856 
01858 inline scivector operator+(const scvector& v1, const sivector& v2) {
01859   return spsp_vv_add<scvector,sivector,scivector,cinterval>(v1,v2);
01860 }
01861 
01863 inline scivector operator+(const sivector& v1, const scvector& v2) {
01864   return spsp_vv_add<sivector,scvector,scivector,cinterval>(v1,v2);
01865 }
01866 
01868 inline civector operator-(const civector& v1, const srvector& v2) {
01869   return fsp_vv_sub<civector,srvector,civector>(v1,v2);
01870 }
01871 
01873 inline civector operator-(const civector& v1, const sivector& v2) {
01874   return fsp_vv_sub<civector,sivector,civector>(v1,v2);
01875 }
01876 
01878 inline civector operator-(const civector& v1, const scvector& v2) {
01879   return fsp_vv_sub<civector,scvector,civector>(v1,v2);
01880 }
01881 
01883 inline civector operator-(const civector& v1, const scivector& v2) {
01884   return fsp_vv_sub<civector,scivector,civector>(v1,v2);
01885 }
01886 
01888 inline civector operator-(const rvector& v1, const scivector& v2) {
01889   return fsp_vv_sub<rvector,scivector,civector>(v1,v2);
01890 }
01891 
01893 inline civector operator-(const cvector& v1, const scivector& v2) {
01894   return fsp_vv_sub<cvector,scivector,civector>(v1,v2);
01895 }
01896 
01898 inline civector operator-(const ivector& v1, const scivector& v2) {
01899   return fsp_vv_sub<ivector,scivector,civector>(v1,v2);
01900 }
01901 
01903 inline civector operator-(const cvector& v1, const sivector& v2) {
01904   return fsp_vv_sub<cvector,sivector,civector>(v1,v2);
01905 }
01906 
01908 inline civector operator-(const ivector& v1, const scvector& v2) {
01909   return fsp_vv_sub<ivector,scvector,civector>(v1,v2);
01910 }
01911 
01913 inline civector operator-(const scivector& v1, const rvector& v2) {
01914   return spf_vv_sub<scivector,rvector,civector>(v1,v2);
01915 }
01916 
01918 inline civector operator-(const scivector& v1, const cvector& v2) {
01919   return spf_vv_sub<scivector,cvector,civector>(v1,v2);
01920 }
01921 
01923 inline civector operator-(const scivector& v1, const ivector& v2) {
01924   return spf_vv_sub<scivector,ivector,civector>(v1,v2);
01925 }
01926 
01928 inline civector operator-(const scivector& v1, const civector& v2) {
01929   return spf_vv_sub<scivector,civector,civector>(v1,v2);
01930 }
01931 
01933 inline civector operator-(const srvector& v1, const civector& v2) {
01934   return spf_vv_sub<srvector,civector,civector>(v1,v2);
01935 }
01936 
01938 inline civector operator-(const scvector& v1, const civector& v2) {
01939   return spf_vv_sub<scvector,civector,civector>(v1,v2);
01940 }
01941 
01943 inline civector operator-(const sivector& v1, const civector& v2) {
01944   return spf_vv_sub<sivector,civector,civector>(v1,v2);
01945 }
01946 
01948 inline civector operator-(const scvector& v1, const ivector& v2) {
01949   return spf_vv_sub<scvector,ivector,civector>(v1,v2);
01950 }
01951 
01953 inline civector operator-(const sivector& v1, const cvector& v2) {
01954   return spf_vv_sub<sivector,cvector,civector>(v1,v2);
01955 }
01956 
01958 inline civector operator-(const civector_slice& v1, const srvector& v2) {
01959   return fsp_vv_sub<civector_slice,srvector,civector>(v1,v2);
01960 }
01961 
01963 inline civector operator-(const civector_slice& v1, const sivector& v2) {
01964   return fsp_vv_sub<civector_slice,sivector,civector>(v1,v2);
01965 }
01966 
01968 inline civector operator-(const civector_slice& v1, const scvector& v2) {
01969   return fsp_vv_sub<civector_slice,scvector,civector>(v1,v2);
01970 }
01971 
01973 inline civector operator-(const civector_slice& v1, const scivector& v2) {
01974   return fsp_vv_sub<civector_slice,scivector,civector>(v1,v2);
01975 }
01976 
01978 inline civector operator-(const rvector_slice& v1, const scivector& v2) {
01979   return fsp_vv_sub<rvector_slice,scivector,civector>(v1,v2);
01980 }
01981 
01983 inline civector operator-(const cvector_slice& v1, const scivector& v2) {
01984   return fsp_vv_sub<cvector_slice,scivector,civector>(v1,v2);
01985 }
01986 
01988 inline civector operator-(const ivector_slice& v1, const scivector& v2) {
01989   return fsp_vv_sub<ivector_slice,scivector,civector>(v1,v2);
01990 }
01991 
01993 inline civector operator-(const cvector_slice& v1, const sivector& v2) {
01994   return fsp_vv_sub<cvector_slice,sivector,civector>(v1,v2);
01995 }
01996 
01998 inline civector operator-(const ivector_slice& v1, const scvector& v2) {
01999   return fsp_vv_sub<ivector_slice,scvector,civector>(v1,v2);
02000 }
02001 
02003 inline civector operator-(const scivector& v1, const rvector_slice& v2) {
02004   return spf_vv_sub<scivector,rvector_slice,civector>(v1,v2);
02005 }
02006 
02008 inline civector operator-(const scivector& v1, const cvector_slice& v2) {
02009   return spf_vv_sub<scivector,cvector_slice,civector>(v1,v2);
02010 }
02011 
02013 inline civector operator-(const scivector& v1, const ivector_slice& v2) {
02014   return spf_vv_sub<scivector,ivector_slice,civector>(v1,v2);
02015 }
02016 
02018 inline civector operator-(const scivector& v1, const civector_slice& v2) {
02019   return spf_vv_sub<scivector,civector_slice,civector>(v1,v2);
02020 }
02021 
02023 inline civector operator-(const srvector& v1, const civector_slice& v2) {
02024   return spf_vv_sub<srvector,civector_slice,civector>(v1,v2);
02025 }
02026 
02028 inline civector operator-(const scvector& v1, const civector_slice& v2) {
02029   return spf_vv_sub<scvector,civector_slice,civector>(v1,v2);
02030 }
02031 
02033 inline civector operator-(const sivector& v1, const civector_slice& v2) {
02034   return spf_vv_sub<sivector,civector_slice,civector>(v1,v2);
02035 }
02036 
02038 inline civector operator-(const scvector& v1, const ivector_slice& v2) {
02039   return spf_vv_sub<scvector,ivector_slice,civector>(v1,v2);
02040 }
02041 
02043 inline civector operator-(const sivector& v1, const cvector_slice& v2) {
02044   return spf_vv_sub<sivector,cvector_slice,civector>(v1,v2);
02045 }
02046 
02048 inline scivector operator-(const scivector& v1, const srvector& v2) {
02049   return spsp_vv_sub<scivector,srvector,scivector,cinterval>(v1,v2);
02050 }
02051 
02053 inline scivector operator-(const scivector& v1, const scvector& v2) {
02054   return spsp_vv_sub<scivector,scvector,scivector,cinterval>(v1,v2);
02055 }
02056 
02058 inline scivector operator-(const scivector& v1, const sivector& v2) {
02059   return spsp_vv_sub<scivector,sivector,scivector,cinterval>(v1,v2);
02060 }
02061 
02063 inline scivector operator-(const scivector& v1, const scivector& v2) {
02064   return spsp_vv_sub<scivector,scivector,scivector,cinterval>(v1,v2);
02065 }
02066 
02068 inline scivector operator-(const srvector& v1, const scivector& v2) {
02069   return spsp_vv_sub<srvector,scivector,scivector,cinterval>(v1,v2);
02070 }
02071 
02073 inline scivector operator-(const scvector& v1, const scivector& v2) {
02074   return spsp_vv_sub<scvector,scivector,scivector,cinterval>(v1,v2);
02075 }
02076 
02078 inline scivector operator-(const sivector& v1, const scivector& v2) {
02079   return spsp_vv_sub<sivector,scivector,scivector,cinterval>(v1,v2);
02080 }
02081 
02083 inline scivector operator-(const scvector& v1, const sivector& v2) {
02084   return spsp_vv_sub<scvector,sivector,scivector,cinterval>(v1,v2);
02085 }
02086 
02088 inline scivector operator-(const sivector& v1, const scvector& v2) {
02089   return spsp_vv_sub<sivector,scvector,scivector,cinterval>(v1,v2);
02090 }
02091 
02093 inline civector operator|(const civector& v1, const srvector& v2) {
02094   return fsp_vv_hull<civector,srvector,civector>(v1,v2);
02095 }
02096 
02098 inline civector operator|(const civector& v1, const scvector& v2) {
02099   return fsp_vv_hull<civector,scvector,civector>(v1,v2);
02100 }
02101 
02103 inline civector operator|(const civector& v1, const sivector& v2) {
02104   return fsp_vv_hull<civector,sivector,civector>(v1,v2);
02105 }
02106 
02108 inline civector operator|(const civector& v1, const scivector& v2) {
02109   return fsp_vv_hull<civector,scivector,civector>(v1,v2);
02110 }
02111 
02113 inline civector operator|(const rvector& v1, const scivector& v2) {
02114   return fsp_vv_hull<rvector,scivector,civector>(v1,v2);
02115 }
02116 
02118 inline civector operator|(const cvector& v1, const scivector& v2) {
02119   return fsp_vv_hull<cvector,scivector,civector>(v1,v2);
02120 }
02121 
02123 inline civector operator|(const ivector& v1, const scivector& v2) {
02124   return fsp_vv_hull<ivector,scivector,civector>(v1,v2);
02125 }
02126 
02128 inline civector operator|(const cvector& v1, const sivector& v2) {
02129   return fsp_vv_hull<cvector,sivector,civector>(v1,v2);
02130 }
02131 
02133 inline civector operator|(const ivector& v1, const scvector& v2) {
02134   return fsp_vv_hull<ivector,scvector,civector>(v1,v2);
02135 }
02136 
02138 inline civector operator|(const scivector& v1, const rvector& v2) {
02139   return spf_vv_hull<scivector,rvector,civector>(v1,v2);
02140 }
02141 
02143 inline civector operator|(const scivector& v1, const cvector& v2) {
02144   return spf_vv_hull<scivector,cvector,civector>(v1,v2);
02145 }
02146 
02148 inline civector operator|(const scivector& v1, const ivector& v2) {
02149   return spf_vv_hull<scivector,ivector,civector>(v1,v2);
02150 }
02151 
02153 inline civector operator|(const scivector& v1, const civector& v2) {
02154   return spf_vv_hull<scivector,civector,civector>(v1,v2);
02155 }
02156 
02158 inline civector operator|(const srvector& v1, const civector& v2) {
02159   return spf_vv_hull<srvector,civector,civector>(v1,v2);
02160 }
02161 
02163 inline civector operator|(const scvector& v1, const civector& v2) {
02164   return spf_vv_hull<scvector,civector,civector>(v1,v2);
02165 }
02166 
02168 inline civector operator|(const sivector& v1, const civector& v2) {
02169   return spf_vv_hull<sivector,civector,civector>(v1,v2);
02170 }
02171 
02173 inline civector operator|(const scvector& v1, const ivector& v2) {
02174   return spf_vv_hull<scvector,ivector,civector>(v1,v2);
02175 }
02176 
02178 inline civector operator|(const sivector& v1, const cvector& v2) {
02179   return spf_vv_hull<sivector,cvector,civector>(v1,v2);
02180 }
02181 
02183 inline civector operator|(const civector_slice& v1, const srvector& v2) {
02184   return fsp_vv_hull<civector_slice,srvector,civector>(v1,v2);
02185 }
02186 
02188 inline civector operator|(const civector_slice& v1, const scvector& v2) {
02189   return fsp_vv_hull<civector_slice,scvector,civector>(v1,v2);
02190 }
02191 
02193 inline civector operator|(const civector_slice& v1, const sivector& v2) {
02194   return fsp_vv_hull<civector_slice,sivector,civector>(v1,v2);
02195 }
02196 
02198 inline civector operator|(const civector_slice& v1, const scivector& v2) {
02199   return fsp_vv_hull<civector_slice,scivector,civector>(v1,v2);
02200 }
02201 
02203 inline civector operator|(const rvector_slice& v1, const scivector& v2) {
02204   return fsp_vv_hull<rvector_slice,scivector,civector>(v1,v2);
02205 }
02206 
02208 inline civector operator|(const cvector_slice& v1, const scivector& v2) {
02209   return fsp_vv_hull<cvector_slice,scivector,civector>(v1,v2);
02210 }
02211 
02213 inline civector operator|(const ivector_slice& v1, const scivector& v2) {
02214   return fsp_vv_hull<ivector_slice,scivector,civector>(v1,v2);
02215 }
02216 
02218 inline civector operator|(const cvector_slice& v1, const sivector& v2) {
02219   return fsp_vv_hull<cvector_slice,sivector,civector>(v1,v2);
02220 }
02221 
02223 inline civector operator|(const ivector_slice& v1, const scvector& v2) {
02224   return fsp_vv_hull<ivector_slice,scvector,civector>(v1,v2);
02225 }
02226 
02228 inline civector operator|(const scivector& v1, const rvector_slice& v2) {
02229   return spf_vv_hull<scivector,rvector_slice,civector>(v1,v2);
02230 }
02231 
02233 inline civector operator|(const scivector& v1, const cvector_slice& v2) {
02234   return spf_vv_hull<scivector,cvector_slice,civector>(v1,v2);
02235 }
02236 
02238 inline civector operator|(const scivector& v1, const ivector_slice& v2) {
02239   return spf_vv_hull<scivector,ivector_slice,civector>(v1,v2);
02240 }
02241 
02243 inline civector operator|(const scivector& v1, const civector_slice& v2) {
02244   return spf_vv_hull<scivector,civector_slice,civector>(v1,v2);
02245 }
02246 
02248 inline civector operator|(const srvector& v1, const civector_slice& v2) {
02249   return spf_vv_hull<srvector,civector_slice,civector>(v1,v2);
02250 }
02251 
02253 inline civector operator|(const scvector& v1, const civector_slice& v2) {
02254   return spf_vv_hull<scvector,civector_slice,civector>(v1,v2);
02255 }
02256 
02258 inline civector operator|(const sivector& v1, const civector_slice& v2) {
02259   return spf_vv_hull<sivector,civector_slice,civector>(v1,v2);
02260 }
02261 
02263 inline civector operator|(const scvector& v1, const ivector_slice& v2) {
02264   return spf_vv_hull<scvector,ivector_slice,civector>(v1,v2);
02265 }
02266 
02268 inline civector operator|(const sivector& v1, const cvector_slice& v2) {
02269   return spf_vv_hull<sivector,cvector_slice,civector>(v1,v2);
02270 }
02271 
02273 inline scivector operator|(const scivector& v1, const srvector& v2) {
02274   return spsp_vv_hull<scivector,srvector,scivector,cinterval>(v1,v2);
02275 }
02276 
02278 inline scivector operator|(const scivector& v1, const scvector& v2) {
02279   return spsp_vv_hull<scivector,scvector,scivector,cinterval>(v1,v2);
02280 }
02281 
02283 inline scivector operator|(const scivector& v1, const sivector& v2) {
02284   return spsp_vv_hull<scivector,sivector,scivector,cinterval>(v1,v2);
02285 }
02286 
02288 inline scivector operator|(const scivector& v1, const scivector& v2) {
02289   return spsp_vv_hull<scivector,scivector,scivector,cinterval>(v1,v2);
02290 }
02291 
02293 inline scivector operator|(const srvector& v1, const scivector& v2) {
02294   return spsp_vv_hull<srvector,scivector,scivector,cinterval>(v1,v2);
02295 }
02296 
02298 inline scivector operator|(const scvector& v1, const scivector& v2) {
02299   return spsp_vv_hull<scvector,scivector,scivector,cinterval>(v1,v2);
02300 }
02301 
02303 inline scivector operator|(const sivector& v1, const scivector& v2) {
02304   return spsp_vv_hull<sivector,scivector,scivector,cinterval>(v1,v2);
02305 }
02306 
02308 inline scivector operator|(const scvector& v1, const sivector& v2) {
02309   return spsp_vv_hull<scvector,sivector,scivector,cinterval>(v1,v2);
02310 }
02311 
02313 inline scivector operator|(const sivector& v1, const scvector& v2) {
02314   return spsp_vv_hull<sivector,scvector,scivector,cinterval>(v1,v2);
02315 }
02316 
02318 inline civector operator|(const cvector& v1, const srvector& v2) {
02319   return fsp_vv_hull<cvector,srvector,civector>(v1,v2);
02320 }
02321 
02323 inline civector operator|(const rvector& v1, const scvector& v2) {
02324   return fsp_vv_hull<rvector,scvector,civector>(v1,v2);
02325 }
02326 
02328 inline civector operator|(const cvector& v1, const scvector& v2) {
02329   return fsp_vv_hull<cvector,scvector,civector>(v1,v2);
02330 }
02331 
02333 inline civector operator|(const scvector& v1, const rvector& v2) {
02334   return spf_vv_hull<scvector,rvector,civector>(v1,v2);
02335 }
02336 
02338 inline civector operator|(const srvector& v1, const cvector& v2) {
02339   return spf_vv_hull<srvector,cvector,civector>(v1,v2);
02340 }
02341 
02343 inline civector operator|(const scvector& v1, const cvector& v2) {
02344   return spf_vv_hull<scvector,cvector,civector>(v1,v2);
02345 }
02346 
02348 inline civector operator|(const cvector_slice& v1, const srvector& v2) {
02349   return fsp_vv_hull<cvector_slice,srvector,civector>(v1,v2);
02350 }
02351 
02353 inline civector operator|(const rvector_slice& v1, const scvector& v2) {
02354   return fsp_vv_hull<rvector_slice,scvector,civector>(v1,v2);
02355 }
02356 
02358 inline civector operator|(const cvector_slice& v1, const scvector& v2) {
02359   return fsp_vv_hull<cvector_slice,scvector,civector>(v1,v2);
02360 }
02361 
02363 inline civector operator|(const scvector& v1, const rvector_slice& v2) {
02364   return spf_vv_hull<scvector,rvector_slice,civector>(v1,v2);
02365 }
02366 
02368 inline civector operator|(const srvector& v1, const cvector_slice& v2) {
02369   return spf_vv_hull<srvector,cvector_slice,civector>(v1,v2);
02370 }
02371 
02373 inline civector operator|(const scvector& v1, const cvector_slice& v2) {
02374   return spf_vv_hull<scvector,cvector_slice,civector>(v1,v2);
02375 }
02376 
02378 inline scivector operator|(const scvector& v1, const srvector& v2) {
02379   return spsp_vv_hull<scvector,srvector,scivector,cinterval>(v1,v2);
02380 }
02381 
02383 inline scivector operator|(const srvector& v1, const scvector& v2) {
02384   return spsp_vv_hull<srvector,scvector,scivector,cinterval>(v1,v2);
02385 }
02386 
02388 inline scivector operator|(const scvector& v1, const scvector& v2) {
02389   return spsp_vv_hull<scvector,scvector,scivector,cinterval>(v1,v2);
02390 }
02391 
02393 inline civector operator|(const cvector& v1, const srvector_slice& v2) {
02394   return fsl_vv_hull<cvector,srvector_slice,civector>(v1,v2);
02395 }
02396 
02398 inline civector operator|(const rvector& v1, const scvector_slice& v2) {
02399   return fsl_vv_hull<rvector,scvector_slice,civector>(v1,v2);
02400 }
02401 
02403 inline civector operator|(const cvector& v1, const scvector_slice& v2) {
02404   return fsl_vv_hull<cvector,scvector_slice,civector>(v1,v2);
02405 }
02406 
02408 inline civector operator|(const scvector_slice& v1, const rvector& v2) {
02409   return slf_vv_hull<scvector_slice,rvector,civector>(v1,v2);
02410 }
02411 
02413 inline civector operator|(const srvector_slice& v1, const cvector& v2) {
02414   return slf_vv_hull<srvector_slice,cvector,civector>(v1,v2);
02415 }
02416 
02418 inline civector operator|(const scvector_slice& v1, const cvector& v2) {
02419   return slf_vv_hull<scvector_slice,cvector,civector>(v1,v2);
02420 }
02421 
02423 inline civector operator|(const cvector_slice& v1, const srvector_slice& v2) {
02424   return fsl_vv_hull<cvector_slice,srvector_slice,civector>(v1,v2);
02425 }
02426 
02428 inline civector operator|(const rvector_slice& v1, const scvector_slice& v2) {
02429   return fsl_vv_hull<rvector_slice,scvector_slice,civector>(v1,v2);
02430 }
02431 
02433 inline civector operator|(const cvector_slice& v1, const scvector_slice& v2) {
02434   return fsl_vv_hull<cvector_slice,scvector_slice,civector>(v1,v2);
02435 }
02436 
02438 inline civector operator|(const scvector_slice& v1, const rvector_slice& v2) {
02439   return slf_vv_hull<scvector_slice,rvector_slice,civector>(v1,v2);
02440 }
02441 
02443 inline civector operator|(const srvector_slice& v1, const cvector_slice& v2) {
02444   return slf_vv_hull<srvector_slice,cvector_slice,civector>(v1,v2);
02445 }
02446 
02448 inline civector operator|(const scvector_slice& v1, const cvector_slice& v2) {
02449   return slf_vv_hull<scvector_slice,cvector_slice,civector>(v1,v2);
02450 }
02451 
02453 inline scivector operator|(const scvector_slice& v1, const srvector_slice& v2) {
02454   return slsl_vv_hull<scvector_slice,srvector_slice,scivector,cinterval>(v1,v2);
02455 }
02456 
02458 inline scivector operator|(const srvector_slice& v1, const scvector_slice& v2) {
02459   return slsl_vv_hull<srvector_slice,scvector_slice,scivector,cinterval>(v1,v2);
02460 }
02461 
02463 inline scivector operator|(const scvector_slice& v1, const scvector_slice& v2) {
02464   return slsl_vv_hull<scvector_slice,scvector_slice,scivector,cinterval>(v1,v2);
02465 }
02466 
02468 inline scivector operator|(const scvector& v1, const srvector_slice& v2) {
02469   return spsl_vv_hull<scvector,srvector_slice,scivector,cinterval>(v1,v2);
02470 }
02471 
02473 inline scivector operator|(const srvector& v1, const scvector_slice& v2) {
02474   return spsl_vv_hull<srvector,scvector_slice,scivector,cinterval>(v1,v2);
02475 }
02476 
02478 inline scivector operator|(const scvector& v1, const scvector_slice& v2) {
02479   return spsl_vv_hull<scvector,scvector_slice,scivector,cinterval>(v1,v2);
02480 }
02481 
02483 inline scivector operator|(const scvector_slice& v1, const srvector& v2) {
02484   return slsp_vv_hull<scvector_slice,srvector,scivector,cinterval>(v1,v2);
02485 }
02486 
02488 inline scivector operator|(const srvector_slice& v1, const scvector& v2) {
02489   return slsp_vv_hull<srvector_slice,scvector,scivector,cinterval>(v1,v2);
02490 }
02491 
02493 inline scivector operator|(const scvector_slice& v1, const scvector& v2) {
02494   return slsp_vv_hull<scvector_slice,scvector,scivector,cinterval>(v1,v2);
02495 }
02496 
02498 inline civector operator&(const civector& v1, const sivector& v2) {
02499   return fsp_vv_intersect<civector,sivector,civector>(v1,v2);
02500 }
02501 
02503 inline civector operator&(const civector& v1, const scivector& v2) {
02504   return fsp_vv_intersect<civector,scivector,civector>(v1,v2);
02505 }
02506 
02508 inline civector operator&(const ivector& v1, const scivector& v2) {
02509   return fsp_vv_intersect<ivector,scivector,civector>(v1,v2);
02510 }
02511 
02513 inline civector operator&(const scivector& v1, const ivector& v2) {
02514   return spf_vv_intersect<scivector,ivector,civector>(v1,v2);
02515 }
02516 
02518 inline civector operator&(const scivector& v1, const civector& v2) {
02519   return spf_vv_intersect<scivector,civector,civector>(v1,v2);
02520 }
02521 
02523 inline civector operator&(const sivector& v1, const civector& v2) {
02524   return spf_vv_intersect<sivector,civector,civector>(v1,v2);
02525 }
02526 
02528 inline civector operator&(const civector_slice& v1, const sivector& v2) {
02529   return fsp_vv_intersect<civector_slice,sivector,civector>(v1,v2);
02530 }
02531 
02533 inline civector operator&(const civector_slice& v1, const scivector& v2) {
02534   return fsp_vv_intersect<civector_slice,scivector,civector>(v1,v2);
02535 }
02536 
02538 inline civector operator&(const ivector_slice& v1, const scivector& v2) {
02539   return fsp_vv_intersect<ivector_slice,scivector,civector>(v1,v2);
02540 }
02541 
02543 inline civector operator&(const scivector& v1, const ivector_slice& v2) {
02544   return spf_vv_intersect<scivector,ivector_slice,civector>(v1,v2);
02545 }
02546 
02548 inline civector operator&(const scivector& v1, const civector_slice& v2) {
02549   return spf_vv_intersect<scivector,civector_slice,civector>(v1,v2);
02550 }
02551 
02553 inline civector operator&(const sivector& v1, const civector_slice& v2) {
02554   return spf_vv_intersect<sivector,civector_slice,civector>(v1,v2);
02555 }
02556 
02558 inline scivector operator&(const scivector& v1, const sivector& v2) {
02559   return spsp_vv_intersect<scivector,sivector,scivector,cinterval>(v1,v2);
02560 }
02561 
02563 inline scivector operator&(const scivector& v1, const scivector& v2) {
02564   return spsp_vv_intersect<scivector,scivector,scivector,cinterval>(v1,v2);
02565 }
02566 
02568 inline scivector operator&(const sivector& v1, const scivector& v2) {
02569   return spsp_vv_intersect<sivector,scivector,scivector,cinterval>(v1,v2);
02570 }
02571 
02572 inline civector& civector::operator+=(const srvector& v2) {
02573   return fsp_vv_addassign(*this,v2);
02574 }
02575 
02576 inline civector& civector::operator+=(const scvector& v2) {
02577   return fsp_vv_addassign(*this,v2);
02578 }
02579 
02580 inline civector& civector::operator+=(const sivector& v2) {
02581   return fsp_vv_addassign(*this,v2);
02582 }
02583 
02584 inline civector& civector::operator+=(const scivector& v2) {
02585   return fsp_vv_addassign(*this,v2);
02586 }
02587 
02588 inline civector_slice& civector_slice::operator+=(const srvector& v2) {
02589   return fsp_vv_addassign(*this,v2);
02590 }
02591 
02592 inline civector_slice& civector_slice::operator+=(const scvector& v2) {
02593   return fsp_vv_addassign(*this,v2);
02594 }
02595 
02596 inline civector_slice& civector_slice::operator+=(const sivector& v2) {
02597   return fsp_vv_addassign(*this,v2);
02598 }
02599 
02600 inline civector_slice& civector_slice::operator+=(const scivector& v2) {
02601   return fsp_vv_addassign(*this,v2);
02602 }
02603 
02604 inline civector& civector::operator-=(const srvector& v2) {
02605   return fsp_vv_subassign(*this,v2);
02606 }
02607 
02608 inline civector& civector::operator-=(const scvector& v2) {
02609   return fsp_vv_subassign(*this,v2);
02610 }
02611 
02612 inline civector& civector::operator-=(const sivector& v2) {
02613   return fsp_vv_subassign(*this,v2);
02614 }
02615 
02616 inline civector& civector::operator-=(const scivector& v2) {
02617   return fsp_vv_subassign(*this,v2);
02618 }
02619 
02620 inline civector_slice& civector_slice::operator-=(const srvector& v2) {
02621   return fsp_vv_subassign(*this,v2);
02622 }
02623 
02624 inline civector_slice& civector_slice::operator-=(const scvector& v2) {
02625   return fsp_vv_subassign(*this,v2);
02626 }
02627 
02628 inline civector_slice& civector_slice::operator-=(const sivector& v2) {
02629   return fsp_vv_subassign(*this,v2);
02630 }
02631 
02632 inline civector_slice& civector_slice::operator-=(const scivector& v2) {
02633   return fsp_vv_subassign(*this,v2);
02634 }
02635 
02636 inline civector& civector::operator|=(const srvector& v2) {
02637   return fsp_vv_hullassign(*this,v2);
02638 }
02639 
02640 inline civector& civector::operator|=(const scvector& v2) {
02641   return fsp_vv_hullassign(*this,v2);
02642 }
02643 
02644 inline civector& civector::operator|=(const sivector& v2) {
02645   return fsp_vv_hullassign(*this,v2);
02646 }
02647 
02648 inline civector& civector::operator|=(const scivector& v2) {
02649   return fsp_vv_hullassign(*this,v2);
02650 }
02651 
02652 inline civector_slice& civector_slice::operator|=(const srvector& v2) {
02653   return fsp_vv_hullassign(*this,v2);
02654 }
02655 
02656 inline civector_slice& civector_slice::operator|=(const scvector& v2) {
02657   return fsp_vv_hullassign(*this,v2);
02658 }
02659 
02660 inline civector_slice& civector_slice::operator|=(const sivector& v2) {
02661   return fsp_vv_hullassign(*this,v2);
02662 }
02663 
02664 inline civector_slice& civector_slice::operator|=(const scivector& v2) {
02665   return fsp_vv_hullassign(*this,v2);
02666 }
02667 
02668 inline civector& civector::operator&=(const sivector& v2) {
02669   return fsp_vv_intersectassign(*this,v2);
02670 }
02671 
02672 inline civector& civector::operator&=(const scivector& v2) {
02673   return fsp_vv_intersectassign(*this,v2);
02674 }
02675 
02676 inline civector_slice& civector_slice::operator&=(const sivector& v2) {
02677   return fsp_vv_intersectassign(*this,v2);
02678 }
02679 
02680 inline civector_slice& civector_slice::operator&=(const scivector& v2) {
02681   return fsp_vv_intersectassign(*this,v2);
02682 }
02683 
02685 
02688 inline bool operator==(const scivector& v1, const scivector& v2) {
02689   return spsp_vv_comp(v1,v2);
02690 }
02691 
02693 
02696 inline bool operator==(const scivector& v1, const srvector& v2) {
02697   return spsp_vv_comp(v1,v2);
02698 }
02699 
02701 
02704 inline bool operator==(const scivector& v1, const sivector& v2) {
02705   return spsp_vv_comp(v1,v2);
02706 }
02707 
02709 
02712 inline bool operator==(const scivector& v1, const scvector& v2) {
02713   return spsp_vv_comp(v1,v2);
02714 }
02715 
02717 
02720 inline bool operator==(const srvector& v1, const scivector& v2) {
02721   return spsp_vv_comp(v1,v2);
02722 }
02723 
02725 
02728 inline bool operator==(const scvector& v1, const scivector& v2) {
02729   return spsp_vv_comp(v1,v2);
02730 }
02731 
02733 
02736 inline bool operator==(const sivector& v1, const scivector& v2) {
02737   return spsp_vv_comp(v1,v2);
02738 }
02739 
02741 
02744 inline bool operator==(const scivector& v1, const rvector& v2) {
02745   return spf_vv_comp(v1,v2);
02746 }
02747 
02749 
02752 inline bool operator==(const scivector& v1, const cvector& v2) {
02753   return spf_vv_comp(v1,v2);
02754 }
02755 
02757 
02760 inline bool operator==(const scivector& v1, const ivector& v2) {
02761   return spf_vv_comp(v1,v2);
02762 }
02763 
02765 
02768 inline bool operator==(const scivector& v1, const civector& v2) {
02769   return spf_vv_comp(v1,v2);
02770 }
02771 
02773 
02776 inline bool operator==(const srvector& v1, const civector& v2) {
02777   return spf_vv_comp(v1,v2);
02778 }
02779 
02781 
02784 inline bool operator==(const scvector& v1, const civector& v2) {
02785   return spf_vv_comp(v1,v2);
02786 }
02787 
02789 
02792 inline bool operator==(const sivector& v1, const civector& v2) {
02793   return spf_vv_comp(v1,v2);
02794 }
02795 
02797 
02800 inline bool operator==(const civector& v1, const srvector& v2) {
02801   return fsp_vv_comp(v1,v2);
02802 }
02803 
02805 
02808 inline bool operator==(const civector& v1, const scvector& v2) {
02809   return fsp_vv_comp(v1,v2);
02810 }
02811 
02813 
02816 inline bool operator==(const civector& v1, const sivector& v2) {
02817   return fsp_vv_comp(v1,v2);
02818 }
02819 
02821 
02824 inline bool operator==(const civector& v1, const scivector& v2) {
02825   return fsp_vv_comp(v1,v2);
02826 }
02827 
02829 
02832 inline bool operator==(const rvector& v1, const scivector& v2) {
02833   return fsp_vv_comp(v1,v2);
02834 }
02835 
02837 
02840 inline bool operator==(const cvector& v1, const scivector& v2) {
02841   return fsp_vv_comp(v1,v2);
02842 }
02843 
02845 
02848 inline bool operator==(const ivector& v1, const scivector& v2) {
02849   return fsp_vv_comp(v1,v2);
02850 }
02851 
02853 
02856 inline bool operator==(const scivector& v1, const rvector_slice& v2) {
02857   return spf_vv_comp(v1,v2);
02858 }
02859 
02861 
02864 inline bool operator==(const scivector& v1, const ivector_slice& v2) {
02865   return spf_vv_comp(v1,v2);
02866 }
02867 
02869 
02872 inline bool operator==(const scivector& v1, const cvector_slice& v2) {
02873   return spf_vv_comp(v1,v2);
02874 }
02875 
02877 
02880 inline bool operator==(const srvector& v1, const civector_slice& v2) {
02881   return spf_vv_comp(v1,v2);
02882 }
02883 
02885 
02888 inline bool operator==(const scvector& v1, const civector_slice& v2) {
02889   return spf_vv_comp(v1,v2);
02890 }
02891 
02893 
02896 inline bool operator==(const sivector& v1, const civector_slice& v2) {
02897   return spf_vv_comp(v1,v2);
02898 }
02899 
02901 
02904 inline bool operator==(const scivector& v1, const civector_slice& v2) {
02905   return spf_vv_comp(v1,v2);
02906 }
02907 
02909 
02912 inline bool operator==(const civector_slice& v1, const srvector& v2) {
02913   return fsp_vv_comp(v1,v2);
02914 }
02915 
02917 
02920 inline bool operator==(const civector_slice& v1, const sivector& v2) {
02921   return fsp_vv_comp(v1,v2);
02922 }
02923 
02925 
02928 inline bool operator==(const civector_slice& v1, const scvector& v2) {
02929   return fsp_vv_comp(v1,v2);
02930 }
02931 
02933 
02936 inline bool operator==(const rvector_slice& v1, const scivector& v2) {
02937   return fsp_vv_comp(v1,v2);
02938 }
02939 
02941 
02944 inline bool operator==(const ivector_slice& v1, const scivector& v2) {
02945   return fsp_vv_comp(v1,v2);
02946 }
02947 
02949 
02952 inline bool operator==(const cvector_slice& v1, const scivector& v2) {
02953   return fsp_vv_comp(v1,v2);
02954 }
02955 
02957 
02960 inline bool operator==(const civector_slice& v1, const scivector& v2) {
02961   return fsp_vv_comp(v1,v2);
02962 }
02963 
02965 
02968 inline bool operator!=(const scivector& v1, const scivector& v2) {
02969   return !spsp_vv_comp(v1,v2);
02970 }
02971 
02973 
02976 inline bool operator!=(const scivector& v1, const srvector& v2) {
02977   return !spsp_vv_comp(v1,v2);
02978 }
02979 
02981 
02984 inline bool operator!=(const scivector& v1, const sivector& v2) {
02985   return !spsp_vv_comp(v1,v2);
02986 }
02987 
02989 
02992 inline bool operator!=(const scivector& v1, const scvector& v2) {
02993   return !spsp_vv_comp(v1,v2);
02994 }
02995 
02997 
03000 inline bool operator!=(const srvector& v1, const scivector& v2) {
03001   return !spsp_vv_comp(v1,v2);
03002 }
03003 
03005 
03008 inline bool operator!=(const scvector& v1, const scivector& v2) {
03009   return !spsp_vv_comp(v1,v2);
03010 }
03011 
03013 
03016 inline bool operator!=(const sivector& v1, const scivector& v2) {
03017   return !spsp_vv_comp(v1,v2);
03018 }
03019 
03021 
03024 inline bool operator!=(const scivector& v1, const rvector& v2) {
03025   return !spf_vv_comp(v1,v2);
03026 }
03027 
03029 
03032 inline bool operator!=(const scivector& v1, const cvector& v2) {
03033   return !spf_vv_comp(v1,v2);
03034 }
03035 
03037 
03040 inline bool operator!=(const scivector& v1, const ivector& v2) {
03041   return !spf_vv_comp(v1,v2);
03042 }
03043 
03045 
03048 inline bool operator!=(const scivector& v1, const civector& v2) {
03049   return !spf_vv_comp(v1,v2);
03050 }
03051 
03053 
03056 inline bool operator!=(const srvector& v1, const civector& v2) {
03057   return !spf_vv_comp(v1,v2);
03058 }
03059 
03061 
03064 inline bool operator!=(const scvector& v1, const civector& v2) {
03065   return !spf_vv_comp(v1,v2);
03066 }
03067 
03069 
03072 inline bool operator!=(const sivector& v1, const civector& v2) {
03073   return !spf_vv_comp(v1,v2);
03074 }
03075 
03077 
03080 inline bool operator!=(const civector& v1, const srvector& v2) {
03081   return !fsp_vv_comp(v1,v2);
03082 }
03083 
03085 
03088 inline bool operator!=(const civector& v1, const sivector& v2) {
03089   return !fsp_vv_comp(v1,v2);
03090 }
03091 
03093 
03096 inline bool operator!=(const civector& v1, const scivector& v2) {
03097   return !fsp_vv_comp(v1,v2);
03098 }
03099 
03101 
03104 inline bool operator!=(const rvector& v1, const scivector& v2) {
03105   return !fsp_vv_comp(v1,v2);
03106 }
03107 
03109 
03112 inline bool operator!=(const cvector& v1, const scivector& v2) {
03113   return !fsp_vv_comp(v1,v2);
03114 }
03115 
03117 
03120 inline bool operator!=(const ivector& v1, const scivector& v2) {
03121   return !fsp_vv_comp(v1,v2);
03122 }
03123 
03125 
03128 inline bool operator!=(const scivector& v1, const rvector_slice& v2) {
03129   return !spf_vv_comp(v1,v2);
03130 }
03131 
03133 
03136 inline bool operator!=(const scivector& v1, const ivector_slice& v2) {
03137   return !spf_vv_comp(v1,v2);
03138 }
03139 
03141 
03144 inline bool operator!=(const scivector& v1, const cvector_slice& v2) {
03145   return !spf_vv_comp(v1,v2);
03146 }
03147 
03149 
03152 inline bool operator!=(const srvector& v1, const civector_slice& v2) {
03153   return !spf_vv_comp(v1,v2);
03154 }
03155 
03157 
03160 inline bool operator!=(const scvector& v1, const civector_slice& v2) {
03161   return !spf_vv_comp(v1,v2);
03162 }
03163 
03165 
03168 inline bool operator!=(const sivector& v1, const civector_slice& v2) {
03169   return !spf_vv_comp(v1,v2);
03170 }
03171 
03173 
03176 inline bool operator!=(const scivector& v1, const civector_slice& v2) {
03177   return !spf_vv_comp(v1,v2);
03178 }
03179 
03181 
03184 inline bool operator!=(const civector_slice& v1, const srvector& v2) {
03185   return !fsp_vv_comp(v1,v2);
03186 }
03187 
03189 
03192 inline bool operator!=(const civector_slice& v1, const sivector& v2) {
03193   return !fsp_vv_comp(v1,v2);
03194 }
03195 
03197 
03200 inline bool operator!=(const civector_slice& v1, const scvector& v2) {
03201   return !fsp_vv_comp(v1,v2);
03202 }
03203 
03205 
03208 inline bool operator!=(const rvector_slice& v1, const scivector& v2) {
03209   return !fsp_vv_comp(v1,v2);
03210 }
03211 
03213 
03216 inline bool operator!=(const ivector_slice& v1, const scivector& v2) {
03217   return !fsp_vv_comp(v1,v2);
03218 }
03219 
03221 
03224 inline bool operator!=(const cvector_slice& v1, const scivector& v2) {
03225   return !fsp_vv_comp(v1,v2);
03226 }
03227 
03229 
03232 inline bool operator!=(const civector_slice& v1, const scivector& v2) {
03233   return !fsp_vv_comp(v1,v2);
03234 }
03235 
03237 
03240 inline bool operator<(const scivector& v1, const scivector& v2) {
03241   return spsp_vv_less<scivector,scivector,cinterval>(v1,v2);
03242 }
03243 
03245 
03248 inline bool operator<(const scivector& v1, const sivector& v2) {
03249   return spsp_vv_less<scivector,sivector,cinterval>(v1,v2);
03250 }
03251 
03253 
03256 inline bool operator<(const srvector& v1, const scivector& v2) {
03257   return spsp_vv_less<srvector,scivector,cinterval>(v1,v2);
03258 }
03259 
03261 
03264 inline bool operator<(const scvector& v1, const scivector& v2) {
03265   return spsp_vv_less<scvector,scivector,cinterval>(v1,v2);
03266 }
03267 
03269 
03272 inline bool operator<(const sivector& v1, const scivector& v2) {
03273   return spsp_vv_less<sivector,scivector,cinterval>(v1,v2);
03274 }
03275 
03277 
03280 inline bool operator<(const scivector& v1, const ivector& v2) {
03281   return spf_vv_less<scivector,ivector,cinterval>(v1,v2);
03282 }
03283 
03285 
03288 inline bool operator<(const scivector& v1, const civector& v2) {
03289   return spf_vv_less<scivector,civector,cinterval>(v1,v2);
03290 }
03291 
03293 
03296 inline bool operator<(const srvector& v1, const civector& v2) {
03297   return spf_vv_less<srvector,civector,cinterval>(v1,v2);
03298 }
03299 
03301 
03304 inline bool operator<(const scvector& v1, const civector& v2) {
03305   return spf_vv_less<scvector,civector,cinterval>(v1,v2);
03306 }
03307 
03309 
03312 inline bool operator<(const sivector& v1, const civector& v2) {
03313   return spf_vv_less<sivector,civector,cinterval>(v1,v2);
03314 }
03315 
03317 
03320 inline bool operator<(const civector& v1, const sivector& v2) {
03321   return fsp_vv_less<civector,sivector,cinterval>(v1,v2);
03322 }
03323 
03325 
03328 inline bool operator<(const civector& v1, const scivector& v2) {
03329   return fsp_vv_less<civector,scivector,cinterval>(v1,v2);
03330 }
03331 
03333 
03336 inline bool operator<(const rvector& v1, const scivector& v2) {
03337   return fsp_vv_less<rvector,scivector,cinterval>(v1,v2);
03338 }
03339 
03341 
03344 inline bool operator<(const cvector& v1, const scivector& v2) {
03345   return fsp_vv_less<cvector,scivector,cinterval>(v1,v2);
03346 }
03347 
03349 
03352 inline bool operator<(const ivector& v1, const scivector& v2) {
03353   return fsp_vv_less<ivector,scivector,cinterval>(v1,v2);
03354 }
03355 
03357 
03360 inline bool operator<(const scivector& v1, const ivector_slice& v2) {
03361   return spf_vv_less<scivector,ivector_slice,cinterval>(v1,v2);
03362 }
03363 
03365 
03368 inline bool operator<(const srvector& v1, const civector_slice& v2) {
03369   return spf_vv_less<srvector,civector_slice,cinterval>(v1,v2);
03370 }
03371 
03373 
03376 inline bool operator<(const scvector& v1, const civector_slice& v2) {
03377   return spf_vv_less<scvector,civector_slice,cinterval>(v1,v2);
03378 }
03379 
03381 
03384 inline bool operator<(const sivector& v1, const civector_slice& v2) {
03385   return spf_vv_less<sivector,civector_slice,cinterval>(v1,v2);
03386 }
03387 
03389 
03392 inline bool operator<(const scivector& v1, const civector_slice& v2) {
03393   return spf_vv_less<scivector,civector_slice,cinterval>(v1,v2);
03394 }
03395 
03397 
03400 inline bool operator<(const civector_slice& v1, const sivector& v2) {
03401   return fsp_vv_less<civector_slice,sivector,cinterval>(v1,v2);
03402 }
03403 
03405 
03408 inline bool operator<(const rvector_slice& v1, const scivector& v2) {
03409   return fsp_vv_less<rvector_slice,scivector,cinterval>(v1,v2);
03410 }
03411 
03413 
03416 inline bool operator<(const ivector_slice& v1, const scivector& v2) {
03417   return fsp_vv_less<ivector_slice,scivector,cinterval>(v1,v2);
03418 }
03419 
03421 
03424 inline bool operator<(const cvector_slice& v1, const scivector& v2) {
03425   return fsp_vv_less<cvector_slice,scivector,cinterval>(v1,v2);
03426 }
03427 
03429 
03432 inline bool operator<(const civector_slice& v1, const scivector& v2) {
03433   return fsp_vv_less<civector_slice,scivector,cinterval>(v1,v2);
03434 }
03435 
03437 
03440 inline bool operator<=(const scivector& v1, const scivector& v2) {
03441   return spsp_vv_leq<scivector,scivector,cinterval>(v1,v2);
03442 }
03443 
03445 
03448 inline bool operator<=(const scivector& v1, const sivector& v2) {
03449   return spsp_vv_leq<scivector,sivector,cinterval>(v1,v2);
03450 }
03451 
03453 
03456 inline bool operator<=(const srvector& v1, const scivector& v2) {
03457   return spsp_vv_leq<srvector,scivector,cinterval>(v1,v2);
03458 }
03459 
03461 
03464 inline bool operator<=(const scvector& v1, const scivector& v2) {
03465   return spsp_vv_leq<scvector,scivector,cinterval>(v1,v2);
03466 }
03467 
03469 
03472 inline bool operator<=(const sivector& v1, const scivector& v2) {
03473   return spsp_vv_leq<sivector,scivector,cinterval>(v1,v2);
03474 }
03475 
03477 
03480 inline bool operator<=(const scivector& v1, const ivector& v2) {
03481   return spf_vv_leq<scivector,ivector,cinterval>(v1,v2);
03482 }
03483 
03485 
03488 inline bool operator<=(const scivector& v1, const civector& v2) {
03489   return spf_vv_leq<scivector,civector,cinterval>(v1,v2);
03490 }
03491 
03493 
03496 inline bool operator<=(const srvector& v1, const civector& v2) {
03497   return spf_vv_leq<srvector,civector,cinterval>(v1,v2);
03498 }
03499 
03501 
03504 inline bool operator<=(const scvector& v1, const civector& v2) {
03505   return spf_vv_leq<scvector,civector,cinterval>(v1,v2);
03506 }
03507 
03509 
03512 inline bool operator<=(const sivector& v1, const civector& v2) {
03513   return spf_vv_leq<sivector,civector,cinterval>(v1,v2);
03514 }
03515 
03517 
03520 inline bool operator<=(const civector& v1, const sivector& v2) {
03521   return fsp_vv_leq<civector,sivector,cinterval>(v1,v2);
03522 }
03523 
03525 
03528 inline bool operator<=(const civector& v1, const scivector& v2) {
03529   return fsp_vv_leq<civector,scivector,cinterval>(v1,v2);
03530 }
03531 
03533 
03536 inline bool operator<=(const rvector& v1, const scivector& v2) {
03537   return fsp_vv_leq<rvector,scivector,cinterval>(v1,v2);
03538 }
03539 
03541 
03544 inline bool operator<=(const cvector& v1, const scivector& v2) {
03545   return fsp_vv_leq<cvector,scivector,cinterval>(v1,v2);
03546 }
03547 
03549 
03552 inline bool operator<=(const ivector& v1, const scivector& v2) {
03553   return fsp_vv_leq<ivector,scivector,cinterval>(v1,v2);
03554 }
03555 
03557 
03560 inline bool operator<=(const scivector& v1, const ivector_slice& v2) {
03561   return spf_vv_leq<scivector,ivector_slice,cinterval>(v1,v2);
03562 }
03563 
03565 
03568 inline bool operator<=(const srvector& v1, const civector_slice& v2) {
03569   return spf_vv_leq<srvector,civector_slice,cinterval>(v1,v2);
03570 }
03571 
03573 
03576 inline bool operator<=(const scvector& v1, const civector_slice& v2) {
03577   return spf_vv_leq<scvector,civector_slice,cinterval>(v1,v2);
03578 }
03579 
03581 
03584 inline bool operator<=(const sivector& v1, const civector_slice& v2) {
03585   return spf_vv_leq<sivector,civector_slice,cinterval>(v1,v2);
03586 }
03587 
03589 
03592 inline bool operator<=(const scivector& v1, const civector_slice& v2) {
03593   return spf_vv_leq<scivector,civector_slice,cinterval>(v1,v2);
03594 }
03595 
03597 
03600 inline bool operator<=(const civector_slice& v1, const sivector& v2) {
03601   return fsp_vv_leq<civector_slice,sivector,cinterval>(v1,v2);
03602 }
03603 
03605 
03608 inline bool operator<=(const rvector_slice& v1, const scivector& v2) {
03609   return fsp_vv_leq<rvector_slice,scivector,cinterval>(v1,v2);
03610 }
03611 
03613 
03616 inline bool operator<=(const ivector_slice& v1, const scivector& v2) {
03617   return fsp_vv_leq<ivector_slice,scivector,cinterval>(v1,v2);
03618 }
03619 
03621 
03624 inline bool operator<=(const cvector_slice& v1, const scivector& v2) {
03625   return fsp_vv_leq<cvector_slice,scivector,cinterval>(v1,v2);
03626 }
03627 
03629 
03632 inline bool operator<=(const civector_slice& v1, const scivector& v2) {
03633   return fsp_vv_leq<civector_slice,scivector,cinterval>(v1,v2);
03634 }
03635 
03637 
03640 inline bool operator>(const scivector& v1, const scivector& v2) {
03641   return spsp_vv_greater<scivector,scivector,cinterval>(v1,v2);
03642 }
03643 
03645 
03648 inline bool operator>(const scivector& v1, const srvector& v2) {
03649   return spsp_vv_greater<scivector,srvector,cinterval>(v1,v2);
03650 }
03651 
03653 
03656 inline bool operator>(const scivector& v1, const sivector& v2) {
03657   return spsp_vv_greater<scivector,sivector,cinterval>(v1,v2);
03658 }
03659 
03661 
03664 inline bool operator>(const scivector& v1, const scvector& v2) {
03665   return spsp_vv_greater<scivector,scvector,cinterval>(v1,v2);
03666 }
03667 
03669 
03672 inline bool operator>(const sivector& v1, const scivector& v2) {
03673   return spsp_vv_greater<sivector,scivector,cinterval>(v1,v2);
03674 }
03675 
03677 
03680 inline bool operator>(const scivector& v1, const rvector& v2) {
03681   return spf_vv_greater<scivector,rvector,cinterval>(v1,v2);
03682 }
03683 
03685 
03688 inline bool operator>(const scivector& v1, const cvector& v2) {
03689   return spf_vv_greater<scivector,cvector,cinterval>(v1,v2);
03690 }
03691 
03693 
03696 inline bool operator>(const scivector& v1, const ivector& v2) {
03697   return spf_vv_greater<scivector,ivector,cinterval>(v1,v2);
03698 }
03699 
03701 
03704 inline bool operator>(const scivector& v1, const civector& v2) {
03705   return spf_vv_greater<scivector,civector,cinterval>(v1,v2);
03706 }
03707 
03709 
03712 inline bool operator>(const sivector& v1, const civector& v2) {
03713   return spf_vv_greater<sivector,civector,cinterval>(v1,v2);
03714 }
03715 
03717 
03720 inline bool operator>(const civector& v1, const srvector& v2) {
03721   return fsp_vv_greater<civector,srvector,cinterval>(v1,v2);
03722 }
03723 
03725 
03728 inline bool operator>(const civector& v1, const scvector& v2) {
03729   return fsp_vv_greater<civector,scvector,cinterval>(v1,v2);
03730 }
03731 
03733 
03736 inline bool operator>(const civector& v1, const sivector& v2) {
03737   return fsp_vv_greater<civector,sivector,cinterval>(v1,v2);
03738 }
03739 
03741 
03744 inline bool operator>(const civector& v1, const scivector& v2) {
03745   return fsp_vv_greater<civector,scivector,cinterval>(v1,v2);
03746 }
03747 
03749 
03752 inline bool operator>(const ivector& v1, const scivector& v2) {
03753   return fsp_vv_greater<ivector,scivector,cinterval>(v1,v2);
03754 }
03755 
03757 
03760 inline bool operator>(const scivector& v1, const rvector_slice& v2) {
03761   return spf_vv_greater<scivector,rvector_slice,cinterval>(v1,v2);
03762 }
03763 
03765 
03768 inline bool operator>(const scivector& v1, const ivector_slice& v2) {
03769   return spf_vv_greater<scivector,ivector_slice,cinterval>(v1,v2);
03770 }
03771 
03773 
03776 inline bool operator>(const scivector& v1, const cvector_slice& v2) {
03777   return spf_vv_greater<scivector,cvector_slice,cinterval>(v1,v2);
03778 }
03779 
03781 
03784 inline bool operator>(const sivector& v1, const civector_slice& v2) {
03785   return spf_vv_greater<sivector,civector_slice,cinterval>(v1,v2);
03786 }
03787 
03789 
03792 inline bool operator>(const scivector& v1, const civector_slice& v2) {
03793   return spf_vv_greater<scivector,civector_slice,cinterval>(v1,v2);
03794 }
03795 
03797 
03800 inline bool operator>(const civector_slice& v1, const srvector& v2) {
03801   return fsp_vv_greater<civector_slice,srvector,cinterval>(v1,v2);
03802 }
03803 
03805 
03808 inline bool operator>(const civector_slice& v1, const sivector& v2) {
03809   return fsp_vv_greater<civector_slice,sivector,cinterval>(v1,v2);
03810 }
03811 
03813 
03816 inline bool operator>(const civector_slice& v1, const scvector& v2) {
03817   return fsp_vv_greater<civector_slice,scvector,cinterval>(v1,v2);
03818 }
03819 
03821 
03824 inline bool operator>(const ivector_slice& v1, const scivector& v2) {
03825   return fsp_vv_greater<ivector_slice,scivector,cinterval>(v1,v2);
03826 }
03827 
03829 
03832 inline bool operator>(const civector_slice& v1, const scivector& v2) {
03833   return fsp_vv_greater<civector_slice,scivector,cinterval>(v1,v2);
03834 }
03835 
03837 
03840 inline bool operator>=(const scivector& v1, const scivector& v2) {
03841   return spsp_vv_geq<scivector,scivector,cinterval>(v1,v2);
03842 }
03843 
03845 
03848 inline bool operator>=(const scivector& v1, const srvector& v2) {
03849   return spsp_vv_geq<scivector,srvector,cinterval>(v1,v2);
03850 }
03851 
03853 
03856 inline bool operator>=(const scivector& v1, const sivector& v2) {
03857   return spsp_vv_geq<scivector,sivector,cinterval>(v1,v2);
03858 }
03859 
03861 
03864 inline bool operator>=(const scivector& v1, const scvector& v2) {
03865   return spsp_vv_geq<scivector,scvector,cinterval>(v1,v2);
03866 }
03867 
03869 
03872 inline bool operator>=(const sivector& v1, const scivector& v2) {
03873   return spsp_vv_geq<sivector,scivector,cinterval>(v1,v2);
03874 }
03875 
03877 
03880 inline bool operator>=(const scivector& v1, const rvector& v2) {
03881   return spf_vv_geq<scivector,rvector,cinterval>(v1,v2);
03882 }
03883 
03885 
03888 inline bool operator>=(const scivector& v1, const cvector& v2) {
03889   return spf_vv_geq<scivector,cvector,cinterval>(v1,v2);
03890 }
03891 
03893 
03896 inline bool operator>=(const scivector& v1, const ivector& v2) {
03897   return spf_vv_geq<scivector,ivector,cinterval>(v1,v2);
03898 }
03899 
03901 
03904 inline bool operator>=(const scivector& v1, const civector& v2) {
03905   return spf_vv_geq<scivector,civector,cinterval>(v1,v2);
03906 }
03907 
03909 
03912 inline bool operator>=(const sivector& v1, const civector& v2) {
03913   return spf_vv_geq<sivector,civector,cinterval>(v1,v2);
03914 }
03915 
03917 
03920 inline bool operator>=(const civector& v1, const srvector& v2) {
03921   return fsp_vv_geq<civector,srvector,cinterval>(v1,v2);
03922 }
03923 
03925 
03928 inline bool operator>=(const civector& v1, const scvector& v2) {
03929   return fsp_vv_geq<civector,scvector,cinterval>(v1,v2);
03930 }
03931 
03933 
03936 inline bool operator>=(const civector& v1, const sivector& v2) {
03937   return fsp_vv_geq<civector,sivector,cinterval>(v1,v2);
03938 }
03939 
03941 
03944 inline bool operator>=(const civector& v1, const scivector& v2) {
03945   return fsp_vv_geq<civector,scivector,cinterval>(v1,v2);
03946 }
03947 
03949 
03952 inline bool operator>=(const ivector& v1, const scivector& v2) {
03953   return fsp_vv_geq<ivector,scivector,cinterval>(v1,v2);
03954 }
03955 
03957 
03960 inline bool operator>=(const scivector& v1, const rvector_slice& v2) {
03961   return spf_vv_geq<scivector,rvector_slice,cinterval>(v1,v2);
03962 }
03963 
03965 
03968 inline bool operator>=(const scivector& v1, const ivector_slice& v2) {
03969   return spf_vv_geq<scivector,ivector_slice,cinterval>(v1,v2);
03970 }
03971 
03973 
03976 inline bool operator>=(const scivector& v1, const cvector_slice& v2) {
03977   return spf_vv_geq<scivector,cvector_slice,cinterval>(v1,v2);
03978 }
03979 
03981 
03984 inline bool operator>=(const sivector& v1, const civector_slice& v2) {
03985   return spf_vv_geq<sivector,civector_slice,cinterval>(v1,v2);
03986 }
03987 
03989 
03992 inline bool operator>=(const scivector& v1, const civector_slice& v2) {
03993   return spf_vv_geq<scivector,civector_slice,cinterval>(v1,v2);
03994 }
03995 
03997 
04000 inline bool operator>=(const civector_slice& v1, const srvector& v2) {
04001   return fsp_vv_geq<civector_slice,srvector,cinterval>(v1,v2);
04002 }
04003 
04005 
04008 inline bool operator>=(const civector_slice& v1, const sivector& v2) {
04009   return fsp_vv_geq<civector_slice,sivector,cinterval>(v1,v2);
04010 }
04011 
04013 
04016 inline bool operator>=(const civector_slice& v1, const scvector& v2) {
04017   return fsp_vv_geq<civector,scvector,cinterval>(v1,v2);
04018 }
04019 
04021 
04024 inline bool operator>=(const ivector_slice& v1, const scivector& v2) {
04025   return fsp_vv_geq<ivector_slice,scivector,cinterval>(v1,v2);
04026 }
04027 
04029 
04032 inline bool operator>=(const civector_slice& v1, const scivector& v2) {
04033   return fsp_vv_geq<civector_slice,scivector,cinterval>(v1,v2);
04034 }
04035 
04037 
04042 inline std::ostream& operator<<(std::ostream& os, const scivector& v) {
04043   return sp_v_output<scivector,cinterval>(os,v);
04044 }
04045 
04047 
04052 inline std::istream& operator>>(std::istream& is, scivector& v) {
04053   return sp_v_input<scivector,cinterval>(is,v);
04054 }
04055 
04056 
04058 
04063 class scivector_slice {
04064   private:
04065     std::vector<int>& p;
04066     std::vector<cinterval>& x;
04067     scivector& orig;
04068     int start,end;
04069     int lb;
04070     int ub;
04071     int n;
04072     int nnz;
04073     int offset;
04074 
04076 
04080     scivector_slice(scivector& v, int l, int u) : p(v.p), x(v.x), orig(v), lb(l), ub(u), n(u-l+1) {
04081       int i;
04082 
04083       for(i=0 ; i<v.get_nnz() && p[i]<lb-v.lb ; i++);
04084 
04085       start = i;
04086 
04087       for(i=start ; i<v.get_nnz() && p[i]<=ub-v.lb ; i++);
04088 
04089       end = i-1;
04090 
04091       nnz = end-start+1;
04092       offset = lb-v.lb;
04093     }
04094 
04095   public:
04096 
04098     int get_nnz() const {
04099       return nnz;
04100     }
04101 
04103     real density() const {
04104       return (double)nnz/n;
04105     }
04106 
04108 
04112     cinterval& operator[](const int i) {
04113 #if(CXSC_INDEX_CHECK)
04114       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator[](const int)"));
04115 #endif
04116       int k;
04117 
04118       for(k=start ; k<end+1 && p[k]-start<=i-lb ; k++) {
04119         if(p[k]-offset == i-lb) 
04120           return x[k];
04121       }
04122 
04123       p.insert(p.begin() + k, i-lb);
04124       x.insert(x.begin() + k, cinterval(0.0));
04125       end++;
04126 
04127       return x[k];
04128     }
04129 
04131 
04135     cinterval operator[](const int i) const {
04136 #if(CXSC_INDEX_CHECK)
04137       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator[](const int)"));
04138 #endif
04139       return (*this)(i);
04140     }
04141 
04143 
04147     const cinterval operator()(const int i) const {
04148 #if(CXSC_INDEX_CHECK)
04149       if(i<lb || i>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator()(const int)"));
04150 #endif
04151       cinterval r(0.0);
04152 
04153       for(int k=start ; k<end && p[k]-start<=i-lb ; k++) {
04154         if(p[k]-start == i-lb) 
04155           r = x[k];
04156       }
04157 
04158       return r; 
04159     }
04160 
04162     scivector_slice& operator=(const real& v) {
04163       return sl_vs_assign<scivector_slice,real,cinterval,std::vector<cinterval>::iterator>(*this,v);
04164     }
04165 
04167     scivector_slice& operator=(const complex& v) {
04168       return sl_vs_assign<scivector_slice,complex,cinterval,std::vector<cinterval>::iterator>(*this,v);
04169     }
04170 
04172     scivector_slice& operator=(const interval& v) {
04173       return sl_vs_assign<scivector_slice,interval,cinterval,std::vector<cinterval>::iterator>(*this,v);
04174     }
04175 
04177     scivector_slice& operator=(const cinterval& v) {
04178       return sl_vs_assign<scivector_slice,cinterval,cinterval,std::vector<cinterval>::iterator>(*this,v);
04179     }
04180 
04182     scivector_slice& operator=(const srvector_slice& v) {
04183       return slsl_vv_assign<scivector_slice,srvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04184     }
04185 
04187     scivector_slice& operator=(const scvector_slice& v) {
04188       return slsl_vv_assign<scivector_slice,scvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04189     }
04190 
04192     scivector_slice& operator=(const sivector_slice& v) {
04193       return slsl_vv_assign<scivector_slice,sivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04194     }
04195 
04197     scivector_slice& operator=(const scivector_slice& v) {
04198       return slsl_vv_assign<scivector_slice,scivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04199     }
04200 
04202     scivector_slice& operator=(const srvector& v) {
04203       return slsp_vv_assign<scivector_slice,srvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04204     }
04205 
04207     scivector_slice& operator=(const scvector& v) {
04208       return slsp_vv_assign<scivector_slice,scvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04209     }
04210 
04212     scivector_slice& operator=(const sivector& v) {
04213       return slsp_vv_assign<scivector_slice,sivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04214     }
04215 
04217     scivector_slice& operator=(const scivector& v) {
04218       return slsp_vv_assign<scivector_slice,scivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04219     }
04220 
04222     scivector_slice& operator=(const rvector& v) {
04223       return slf_vv_assign<scivector_slice,rvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04224     }
04225 
04227     scivector_slice& operator=(const cvector& v) {
04228       return slf_vv_assign<scivector_slice,cvector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04229     }
04230 
04232     scivector_slice& operator=(const ivector& v) {
04233       return slf_vv_assign<scivector_slice,ivector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04234     }
04235 
04237     scivector_slice& operator=(const civector& v) {
04238       return slf_vv_assign<scivector_slice,civector,cinterval,std::vector<cinterval>::iterator>(*this,v);
04239     }
04240 
04242     scivector_slice& operator=(const rvector_slice& v) {
04243       return slf_vv_assign<scivector_slice,rvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04244     }
04245 
04247     scivector_slice& operator=(const cvector_slice& v) {
04248       return slf_vv_assign<scivector_slice,cvector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04249     }
04250 
04252     scivector_slice& operator=(const ivector_slice& v) {
04253       return slf_vv_assign<scivector_slice,ivector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04254     }
04255 
04257     scivector_slice& operator=(const civector_slice& v) {
04258       return slf_vv_assign<scivector_slice,civector_slice,cinterval,std::vector<cinterval>::iterator>(*this,v);
04259     }
04260 
04262     scivector_slice& operator*=(const real& s) {
04263       return sl_vs_multassign(*this,s);
04264     }
04265 
04267     scivector_slice& operator*=(const complex& s) {
04268       return sl_vs_multassign(*this,s);
04269     }
04270 
04272     scivector_slice& operator*=(const interval& s) {
04273       return sl_vs_multassign(*this,s);
04274     }
04275 
04277     scivector_slice& operator*=(const cinterval& s) {
04278       return sl_vs_multassign(*this,s);
04279     }
04280 
04282     scivector_slice& operator/=(const real& s) {
04283       return sl_vs_divassign(*this,s);
04284     }
04285 
04287     scivector_slice& operator/=(const complex& s) {
04288       return sl_vs_divassign(*this,s);
04289     }
04291     scivector_slice& operator/=(const interval& s) {
04292       return sl_vs_divassign(*this,s);
04293     }
04294 
04296     scivector_slice& operator/=(const cinterval& s) {
04297       return sl_vs_divassign(*this,s);
04298     }
04299 
04301     scivector_slice& operator+=(const rvector& v) {
04302       return slf_vv_addassign<scivector_slice,rvector,cinterval>(*this,v);
04303     }
04304 
04306     scivector_slice& operator+=(const ivector& v) {
04307       return slf_vv_addassign<scivector_slice,ivector,cinterval>(*this,v);
04308     }
04309 
04311     scivector_slice& operator+=(const cvector& v) {
04312       return slf_vv_addassign<scivector_slice,cvector,cinterval>(*this,v);
04313     }
04314 
04316     scivector_slice& operator+=(const civector& v) {
04317       return slf_vv_addassign<scivector_slice,civector,cinterval>(*this,v);
04318     }
04319 
04321     scivector_slice& operator+=(const rvector_slice& v) {
04322       return slf_vv_addassign<scivector_slice,rvector_slice,cinterval>(*this,v);
04323     }
04324 
04326     scivector_slice& operator+=(const cvector_slice& v) {
04327       return slf_vv_addassign<scivector_slice,cvector_slice,cinterval>(*this,v);
04328     }
04329 
04331     scivector_slice& operator+=(const ivector_slice& v) {
04332       return slf_vv_addassign<scivector_slice,ivector_slice,cinterval>(*this,v);
04333     }
04334 
04336     scivector_slice& operator+=(const civector_slice& v) {
04337       return slf_vv_addassign<scivector_slice,civector_slice,cinterval>(*this,v);
04338     }
04339 
04341     scivector_slice& operator+=(const srvector& v) {
04342       return slsp_vv_addassign(*this,v);
04343     }
04344 
04346     scivector_slice& operator+=(const scvector& v) {
04347       return slsp_vv_addassign(*this,v);
04348     }
04349 
04351     scivector_slice& operator+=(const sivector& v) {
04352       return slsp_vv_addassign(*this,v);
04353     }
04354 
04356     scivector_slice& operator+=(const scivector& v) {
04357       return slsp_vv_addassign(*this,v);
04358     }
04359 
04361     scivector_slice& operator+=(const srvector_slice& v) {
04362       return slsl_vv_addassign(*this,v);
04363     }
04364 
04366     scivector_slice& operator+=(const scvector_slice& v) {
04367       return slsl_vv_addassign(*this,v);
04368     }
04369 
04371     scivector_slice& operator+=(const sivector_slice& v) {
04372       return slsl_vv_addassign(*this,v);
04373     }
04374 
04376     scivector_slice& operator+=(const scivector_slice& v) {
04377       return slsl_vv_addassign(*this,v);
04378     }
04379 
04381     scivector_slice& operator-=(const rvector& v) {
04382       return slf_vv_subassign<scivector_slice,rvector,cinterval>(*this,v);
04383     }
04384 
04386     scivector_slice& operator-=(const ivector& v) {
04387       return slf_vv_subassign<scivector_slice,ivector,cinterval>(*this,v);
04388     }
04389 
04391     scivector_slice& operator-=(const cvector& v) {
04392       return slf_vv_subassign<scivector_slice,cvector,cinterval>(*this,v);
04393     }
04394 
04396     scivector_slice& operator-=(const civector& v) {
04397       return slf_vv_subassign<scivector_slice,civector,cinterval>(*this,v);
04398     }
04399 
04401     scivector_slice& operator-=(const rvector_slice& v) {
04402       return slf_vv_subassign<scivector_slice,rvector_slice,cinterval>(*this,v);
04403     }
04404 
04406     scivector_slice& operator-=(const cvector_slice& v) {
04407       return slf_vv_subassign<scivector_slice,cvector_slice,cinterval>(*this,v);
04408     }
04409 
04411     scivector_slice& operator-=(const ivector_slice& v) {
04412       return slf_vv_subassign<scivector_slice,ivector_slice,cinterval>(*this,v);
04413     }
04414 
04416     scivector_slice& operator-=(const civector_slice& v) {
04417       return slf_vv_subassign<scivector_slice,civector_slice,cinterval>(*this,v);
04418     }
04419 
04421     scivector_slice& operator-=(const srvector& v) {
04422       return slsp_vv_subassign(*this,v);
04423     }
04424 
04426     scivector_slice& operator-=(const scvector& v) {
04427       return slsp_vv_subassign(*this,v);
04428     }
04429 
04431     scivector_slice& operator-=(const sivector& v) {
04432       return slsp_vv_subassign(*this,v);
04433     }
04434 
04436     scivector_slice& operator-=(const scivector& v) {
04437       return slsp_vv_subassign(*this,v);
04438     }
04439 
04441     scivector_slice& operator-=(const srvector_slice& v) {
04442       return slsl_vv_subassign(*this,v);
04443     }
04444 
04446     scivector_slice& operator-=(const scvector_slice& v) {
04447       return slsl_vv_subassign(*this,v);
04448     }
04449 
04451     scivector_slice& operator-=(const sivector_slice& v) {
04452       return slsl_vv_subassign(*this,v);
04453     }
04454 
04456     scivector_slice& operator-=(const scivector_slice& v) {
04457       return slsl_vv_subassign(*this,v);
04458     }
04459 
04461     scivector_slice& operator|=(const rvector& v) {
04462       return slf_vv_hullassign<scivector_slice,rvector,cinterval>(*this,v);
04463     }
04464 
04466     scivector_slice& operator|=(const ivector& v) {
04467       return slf_vv_hullassign<scivector_slice,ivector,cinterval>(*this,v);
04468     }
04469 
04471     scivector_slice& operator|=(const cvector& v) {
04472       return slf_vv_hullassign<scivector_slice,cvector,cinterval>(*this,v);
04473     }
04474 
04476     scivector_slice& operator|=(const civector& v) {
04477       return slf_vv_hullassign<scivector_slice,civector,cinterval>(*this,v);
04478     }
04479 
04481     scivector_slice& operator|=(const rvector_slice& v) {
04482       return slf_vv_hullassign<scivector_slice,rvector_slice,cinterval>(*this,v);
04483     }
04484 
04486     scivector_slice& operator|=(const cvector_slice& v) {
04487       return slf_vv_hullassign<scivector_slice,cvector_slice,cinterval>(*this,v);
04488     }
04489 
04491     scivector_slice& operator|=(const ivector_slice& v) {
04492       return slf_vv_hullassign<scivector_slice,ivector_slice,cinterval>(*this,v);
04493     }
04494 
04496     scivector_slice& operator|=(const civector_slice& v) {
04497       return slf_vv_hullassign<scivector_slice,civector_slice,cinterval>(*this,v);
04498     }
04499 
04501     scivector_slice& operator|=(const srvector& v) {
04502       return slsp_vv_hullassign(*this,v);
04503     }
04504 
04506     scivector_slice& operator|=(const scvector& v) {
04507       return slsp_vv_hullassign(*this,v);
04508     }
04509 
04511     scivector_slice& operator|=(const sivector& v) {
04512       return slsp_vv_hullassign(*this,v);
04513     }
04514 
04516     scivector_slice& operator|=(const scivector& v) {
04517       return slsp_vv_hullassign(*this,v);
04518     }
04519 
04521     scivector_slice& operator|=(const srvector_slice& v) {
04522       return slsl_vv_hullassign(*this,v);
04523     }
04524 
04526     scivector_slice& operator|=(const scvector_slice& v) {
04527       return slsl_vv_hullassign(*this,v);
04528     }
04529 
04531     scivector_slice& operator|=(const sivector_slice& v) {
04532       return slsl_vv_hullassign(*this,v);
04533     }
04534 
04536     scivector_slice& operator|=(const scivector_slice& v) {
04537       return slsl_vv_hullassign(*this,v);
04538     }
04539 
04541     scivector_slice& operator&=(const ivector& v) {
04542       return slf_vv_intersectassign<scivector_slice,ivector,cinterval>(*this,v);
04543     }
04544 
04546     scivector_slice& operator&=(const civector& v) {
04547       return slf_vv_intersectassign<scivector_slice,civector,cinterval>(*this,v);
04548     }
04549 
04551     scivector_slice& operator&=(const ivector_slice& v) {
04552       return slf_vv_intersectassign<scivector_slice,ivector_slice,cinterval>(*this,v);
04553     }
04554 
04556     scivector_slice& operator&=(const civector_slice& v) {
04557       return slf_vv_intersectassign<scivector_slice,civector_slice,cinterval>(*this,v);
04558     }
04559 
04561     scivector_slice& operator&=(const sivector& v) {
04562       return slsp_vv_intersectassign(*this,v);
04563     }
04564 
04566     scivector_slice& operator&=(const scivector& v) {
04567       return slsp_vv_intersectassign(*this,v);
04568     }
04569 
04571     scivector_slice& operator&=(const sivector_slice& v) {
04572       return slsl_vv_intersectassign(*this,v);
04573     }
04574 
04576     scivector_slice& operator&=(const scivector_slice& v) {
04577       return slsl_vv_intersectassign(*this,v);
04578     }
04579 
04580     friend int Lb(const scivector_slice&);
04581     friend int Ub(const scivector_slice&);
04582     friend sivector Re(const scivector_slice&);
04583     friend sivector Im(const scivector_slice&);
04584     friend scvector Inf(const scivector_slice&);
04585     friend scvector Sup(const scivector_slice&);
04586     friend srvector InfRe(const scivector_slice&);
04587     friend srvector InfIm(const scivector_slice&);
04588     friend srvector SupRe(const scivector_slice&);
04589     friend srvector SupIm(const scivector_slice&);
04590     friend sivector abs(const scivector_slice&);
04591     friend scivector conj(const scivector_slice&);
04592     friend scvector mid(const scivector_slice&);
04593     friend scvector diam(const scivector_slice&);
04594     friend int VecLen(const scivector_slice&);
04595 
04596 //     friend srvector operator*(const srmatrix&, const srvector_slice&); //ok
04597 //     friend srvector operator*(const srmatrix_slice&, const srvector_slice&); //ok
04598 
04599     friend class srvector;
04600     friend class scvector;
04601     friend class sivector;
04602     friend class scivector;
04603     friend class civector;
04604     friend class civector_slice;
04605 
04606 #include "vector_friend_declarations.inl"
04607 };
04608 
04609 inline civector::civector(const srvector_slice& v) {
04610   l = v.lb;
04611   u = v.ub;
04612   size = v.n;
04613   dat = new cinterval[v.n];
04614   for(int i=0 ; i<v.n ; i++)
04615     dat[i] = 0.0;
04616   for(int i=v.start ; i<=v.end ; i++)
04617     dat[v.p[i]] = v.x[i];
04618 }
04619 
04620 inline civector::civector(const scvector_slice& v) {
04621   l = v.lb;
04622   u = v.ub;
04623   size = v.n;
04624   dat = new cinterval[v.n];
04625   for(int i=0 ; i<v.n ; i++)
04626     dat[i] = 0.0;
04627   for(int i=v.start ; i<=v.end ; i++)
04628     dat[v.p[i]] = v.x[i];
04629 }
04630 
04631 inline civector::civector(const sivector_slice& v) {
04632   l = v.lb;
04633   u = v.ub;
04634   size = v.n;
04635   dat = new cinterval[v.n];
04636   for(int i=0 ; i<v.n ; i++)
04637     dat[i] = 0.0;
04638   for(int i=v.start ; i<=v.end ; i++)
04639     dat[v.p[i]] = v.x[i];
04640 }
04641 
04642 inline civector::civector(const scivector_slice& v) {
04643   l = v.lb;
04644   u = v.ub;
04645   size = v.n;
04646   dat = new cinterval[v.n];
04647   for(int i=0 ; i<v.n ; i++)
04648     dat[i] = 0.0;
04649   for(int i=v.start ; i<=v.end ; i++)
04650     dat[v.p[i]] = v.x[i];
04651 }
04652 
04653 inline civector_slice& civector_slice::operator=(const srvector& v) {
04654   *this = rvector(v);
04655   return *this;
04656 }
04657 
04658 inline civector_slice& civector_slice::operator=(const srvector_slice& v) {
04659   *this = rvector(v);
04660   return *this;
04661 }
04662 
04663 inline civector_slice& civector_slice::operator=(const sivector& v) {
04664   *this = ivector(v);
04665   return *this;
04666 }
04667 
04668 inline civector_slice& civector_slice::operator=(const sivector_slice& v) {
04669   *this = ivector(v);
04670   return *this;
04671 }
04672 
04673 inline civector_slice& civector_slice::operator=(const scvector& v) {
04674   *this = cvector(v);
04675   return *this;
04676 }
04677 
04678 inline civector_slice& civector_slice::operator=(const scvector_slice& v) {
04679   *this = cvector(v);
04680   return *this;
04681 }
04682 
04683 inline civector_slice& civector_slice::operator=(const scivector& v) {
04684   *this = civector(v);
04685   return *this;
04686 }
04687 
04688 inline civector_slice& civector_slice::operator=(const scivector_slice& v) {
04689   *this = civector(v);
04690   return *this;
04691 }
04692 
04693 inline scivector::scivector(const srvector_slice& s) : lb(s.lb), ub(s.ub), n(s.n)  {
04694   p.reserve(s.nnz);
04695   x.reserve(s.nnz);
04696 
04697   for(int i=s.start ; i<=s.end ; i++) {
04698     p.push_back(s.p[i]-s.offset);
04699     x.push_back(cinterval(s.x[i]));
04700   }
04701 
04702 }
04703 
04704 inline scivector::scivector(const scvector_slice& s) : lb(s.lb), ub(s.ub), n(s.n)  {
04705   p.reserve(s.nnz);
04706   x.reserve(s.nnz);
04707 
04708   for(int i=s.start ; i<=s.end ; i++) {
04709     p.push_back(s.p[i]-s.offset);
04710     x.push_back(cinterval(s.x[i]));
04711   }
04712 
04713 }
04714 
04715 inline scivector::scivector(const sivector_slice& s) : lb(s.lb), ub(s.ub), n(s.n)  {
04716   p.reserve(s.nnz);
04717   x.reserve(s.nnz);
04718 
04719   for(int i=s.start ; i<=s.end ; i++) {
04720     p.push_back(s.p[i]-s.offset);
04721     x.push_back(cinterval(s.x[i]));
04722   }
04723 
04724 }
04725 
04726 inline scivector::scivector(const scivector_slice& s) : lb(s.lb), ub(s.ub), n(s.n)  {
04727   p.reserve(s.nnz);
04728   x.reserve(s.nnz);
04729 
04730   for(int i=s.start ; i<=s.end ; i++) {
04731     p.push_back(s.p[i]-s.offset);
04732     x.push_back(s.x[i]);
04733   }
04734 
04735 }
04736 
04737 inline scivector& scivector::operator=(const srvector_slice& v) {
04738   return spsl_vv_assign<scivector,srvector_slice,cinterval>(*this,v);
04739 }
04740 
04741 inline scivector& scivector::operator=(const scvector_slice& v) {
04742   return spsl_vv_assign<scivector,scvector_slice,cinterval>(*this,v);
04743 }
04744 
04745 inline scivector& scivector::operator=(const sivector_slice& v) {
04746   return spsl_vv_assign<scivector,sivector_slice,cinterval>(*this,v);
04747 }
04748 
04749 inline scivector& scivector::operator=(const scivector_slice& v) {
04750   return spsl_vv_assign<scivector,scivector_slice,cinterval>(*this,v);
04751 }
04752 
04753 inline scivector_slice scivector::operator()(const int i, const int j) {
04754 #if(CXSC_INDEX_CHECK)
04755   if(i<lb || j>ub) cxscthrow(ELEMENT_NOT_IN_VEC("scivector_slice::operator()(const int, const int)"));
04756 #endif
04757   return scivector_slice(*this,i,j);
04758 }
04759 
04761 inline scivector operator-(const scivector_slice& v) {
04762   return sl_v_negative<scivector_slice,scivector>(v);
04763 }
04764 
04766 inline int Lb(const scivector_slice& v) {
04767   return v.lb;
04768 }
04769 
04771 inline int Ub(const scivector_slice& v) {
04772   return v.ub;
04773 }
04774 
04776 inline sivector Re(const scivector_slice& v) {
04777   return Re(scivector(v));
04778 }
04779 
04781 inline sivector Im(const scivector_slice& v) {
04782   return Im(scivector(v));
04783 }
04784 
04786 inline scvector Inf(const scivector_slice& v) {
04787   return Inf(scivector(v));
04788 }
04789 
04791 inline scvector Sup(const scivector_slice& v) {
04792   return Sup(scivector(v));
04793 }
04794 
04796 inline srvector InfRe(const scivector_slice& v) {
04797   return InfRe(scivector(v));
04798 }
04799 
04801 inline srvector InfIm(const scivector_slice& v) {
04802   return InfIm(scivector(v));
04803 }
04804 
04806 inline srvector SupRe(const scivector_slice& v) {
04807   return SupRe(scivector(v));
04808 }
04809 
04811 inline srvector SupIm(const scivector_slice& v) {
04812   return SupIm(scivector(v));
04813 }
04814 
04816 inline scivector conj(const scivector_slice& v) {
04817   scivector res(v.n, v.nnz);
04818   res.lb = v.lb;
04819   res.ub = v.ub;
04820   res.p = v.p;
04821   for(int i=v.start ; i<=v.end ; i++)
04822     res.x.push_back(conj(v.x[i]));
04823   return res;
04824 }
04825 
04827 inline sivector abs(const scivector_slice& v) {
04828   sivector res(v.n, v.nnz);
04829   res.lb = v.lb;
04830   res.ub = v.ub;
04831   res.p = v.p;
04832   for(int i=v.start ; i<=v.end ; i++)
04833     res.x.push_back(abs(v.x[i]));
04834   return res;
04835 }
04836 
04838 inline scvector mid(const scivector_slice& v) {
04839   scvector res(v.n, v.nnz);
04840   res.lb = v.lb;
04841   res.ub = v.ub;
04842   res.p = v.p;
04843   for(int i=v.start ; i<=v.end ; i++)
04844     res.x.push_back(mid(v.x[i]));
04845   return res;
04846 }
04847 
04849 inline scvector diam(const scivector_slice& v) {
04850   scvector res(v.n, v.nnz);
04851   res.lb = v.lb;
04852   res.ub = v.ub;
04853   res.p = v.p;
04854   for(int i=v.start ; i<v.end ; i++)
04855     res.x.push_back(diam(v.x[i]));
04856   return res;
04857 }
04858 
04860 inline int VecLen(const scivector_slice& v) {
04861   return v.n;
04862 }
04863 
04865 
04871 inline cinterval operator*(const scivector_slice& v1, const rvector& v2) {
04872   return slf_vv_mult<scivector_slice,rvector,cinterval,sparse_cidot>(v1,v2);
04873 }
04874 
04876 
04882 inline cinterval operator*(const scivector_slice& v1, const cvector& v2) {
04883   return slf_vv_mult<scivector_slice,cvector,cinterval,sparse_cidot>(v1,v2);
04884 }
04885 
04887 
04893 inline cinterval operator*(const scivector_slice& v1, const ivector& v2) {
04894   return slf_vv_mult<scivector_slice,ivector,cinterval,sparse_cidot>(v1,v2);
04895 }
04896 
04898 
04904 inline cinterval operator*(const scivector_slice& v1, const civector& v2) {
04905   return slf_vv_mult<scivector_slice,civector,cinterval,sparse_cidot>(v1,v2);
04906 }
04907 
04909 
04915 inline cinterval operator*(const srvector_slice& v1, const civector& v2) {
04916   return slf_vv_mult<srvector_slice,civector,cinterval,sparse_cidot>(v1,v2);
04917 }
04918 
04920 
04926 inline cinterval operator*(const sivector_slice& v1, const civector& v2) {
04927   return slf_vv_mult<sivector_slice,civector,cinterval,sparse_cidot>(v1,v2);
04928 }
04929 
04931 
04937 inline cinterval operator*(const scvector_slice& v1, const civector& v2) {
04938   return slf_vv_mult<scvector_slice,civector,cinterval,sparse_cidot>(v1,v2);
04939 }
04940 
04942 
04948 inline cinterval operator*(const scvector_slice& v1, const ivector& v2) {
04949   return slf_vv_mult<scvector_slice,ivector,cinterval,sparse_cidot>(v1,v2);
04950 }
04951 
04953 
04959 inline cinterval operator*(const sivector_slice& v1, const cvector& v2) {
04960   return slf_vv_mult<sivector_slice,cvector,cinterval,sparse_cidot>(v1,v2);
04961 }
04962 
04964 
04970 inline cinterval operator*(const civector& v1, const srvector_slice& v2) {
04971   return fsl_vv_mult<civector,srvector_slice,cinterval,sparse_cidot>(v1,v2);
04972 }
04973 
04975 
04981 inline cinterval operator*(const civector& v1, const scvector_slice& v2) {
04982   return fsl_vv_mult<civector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
04983 }
04984 
04986 
04992 inline cinterval operator*(const civector& v1, const sivector_slice& v2) {
04993   return fsl_vv_mult<civector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
04994 }
04995 
04997 
05003 inline cinterval operator*(const civector& v1, const scivector_slice& v2) {
05004   return fsl_vv_mult<civector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05005 }
05006 
05008 
05014 inline cinterval operator*(const rvector& v1, const scivector_slice& v2) {
05015   return fsl_vv_mult<rvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05016 }
05017 
05019 
05025 inline cinterval operator*(const cvector& v1, const scivector_slice& v2) {
05026   return fsl_vv_mult<cvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05027 }
05028 
05030 
05036 inline cinterval operator*(const ivector& v1, const scivector_slice& v2) {
05037   return fsl_vv_mult<ivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05038 }
05039 
05041 
05047 inline cinterval operator*(const cvector& v1, const sivector_slice& v2) {
05048   return fsl_vv_mult<cvector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05049 }
05050 
05052 
05058 inline cinterval operator*(const ivector& v1, const scvector_slice& v2) {
05059   return fsl_vv_mult<ivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05060 }
05061 
05063 
05069 inline cinterval operator*(const scivector_slice& v1, const rvector_slice& v2) {
05070   return slf_vv_mult<scivector_slice,rvector_slice,cinterval,sparse_cidot>(v1,v2);
05071 }
05072 
05074 
05080 inline cinterval operator*(const scivector_slice& v1, const ivector_slice& v2) {
05081   return slf_vv_mult<scivector_slice,ivector_slice,cinterval,sparse_cidot>(v1,v2);
05082 }
05083 
05085 
05091 inline cinterval operator*(const scivector_slice& v1, const cvector_slice& v2) {
05092   return slf_vv_mult<scivector_slice,cvector_slice,cinterval,sparse_cidot>(v1,v2);
05093 }
05094 
05096 
05102 inline cinterval operator*(const scivector_slice& v1, const civector_slice& v2) {
05103   return slf_vv_mult<scivector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
05104 }
05105 
05107 
05113 inline cinterval operator*(const srvector_slice& v1, const civector_slice& v2) {
05114   return slf_vv_mult<srvector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
05115 }
05116 
05118 
05124 inline cinterval operator*(const scvector_slice& v1, const civector_slice& v2) {
05125   return slf_vv_mult<scvector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
05126 }
05127 
05129 
05135 inline cinterval operator*(const sivector_slice& v1, const civector_slice& v2) {
05136   return slf_vv_mult<sivector_slice,civector_slice,cinterval,sparse_cidot>(v1,v2);
05137 }
05138 
05140 
05146 inline cinterval operator*(const scvector_slice& v1, const ivector_slice& v2) {
05147   return slf_vv_mult<scvector_slice,ivector_slice,cinterval,sparse_cidot>(v1,v2);
05148 }
05149 
05151 
05157 inline cinterval operator*(const sivector_slice& v1, const cvector_slice& v2) {
05158   return slf_vv_mult<sivector_slice,cvector_slice,cinterval,sparse_cidot>(v1,v2);
05159 }
05160 
05162 
05168 inline cinterval operator*(const civector_slice& v1, const srvector_slice& v2) {
05169   return fsl_vv_mult<civector_slice,srvector_slice,cinterval,sparse_cidot>(v1,v2);
05170 }
05171 
05173 
05179 inline cinterval operator*(const civector_slice& v1, const scvector_slice& v2) {
05180   return fsl_vv_mult<civector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05181 }
05182 
05184 
05190 inline cinterval operator*(const civector_slice& v1, const sivector_slice& v2) {
05191   return fsl_vv_mult<civector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05192 }
05193 
05195 
05201 inline cinterval operator*(const civector_slice& v1, const scivector_slice& v2) {
05202   return fsl_vv_mult<civector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05203 }
05204 
05206 
05212 inline cinterval operator*(const rvector_slice& v1, const scivector_slice& v2) {
05213   return fsl_vv_mult<rvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05214 }
05215 
05217 
05223 inline cinterval operator*(const ivector_slice& v1, const scivector_slice& v2) {
05224   return fsl_vv_mult<ivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05225 }
05226 
05228 
05234 inline cinterval operator*(const cvector_slice& v1, const scivector_slice& v2) {
05235   return fsl_vv_mult<cvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05236 }
05237 
05239 
05245 inline cinterval operator*(const cvector_slice& v1, const sivector_slice& v2) {
05246   return fsl_vv_mult<cvector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05247 }
05248 
05250 
05256 inline cinterval operator*(const ivector_slice& v1, const scvector_slice& v2) {
05257   return fsl_vv_mult<ivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05258 }
05259 
05261 
05267 inline cinterval operator*(const scivector& v1, const srvector_slice& v2) {
05268   return spsl_vv_mult<scivector,srvector_slice,cinterval,sparse_cidot>(v1,v2);
05269 }
05270 
05272 
05278 inline cinterval operator*(const scivector& v1, const scvector_slice& v2) {
05279   return spsl_vv_mult<scivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05280 }
05281 
05283 
05289 inline cinterval operator*(const scivector& v1, const sivector_slice& v2) {
05290   return spsl_vv_mult<scivector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05291 }
05292 
05294 
05300 inline cinterval operator*(const scivector& v1, const scivector_slice& v2) {
05301   return spsl_vv_mult<scivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05302 }
05303 
05305 
05311 inline cinterval operator*(const srvector& v1, const scivector_slice& v2) {
05312   return spsl_vv_mult<srvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05313 }
05314 
05316 
05322 inline cinterval operator*(const scvector& v1, const scivector_slice& v2) {
05323   return spsl_vv_mult<scvector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05324 }
05325 
05327 
05333 inline cinterval operator*(const sivector& v1, const scivector_slice& v2) {
05334   return spsl_vv_mult<sivector,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05335 }
05336 
05338 
05344 inline cinterval operator*(const scvector& v1, const sivector_slice& v2) {
05345   return spsl_vv_mult<scvector,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05346 }
05347 
05349 
05355 inline cinterval operator*(const sivector& v1, const scvector_slice& v2) {
05356   return spsl_vv_mult<sivector,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05357 }
05358 
05360 
05366 inline cinterval operator*(const scivector_slice& v1, const srvector& v2) {
05367   return slsp_vv_mult<scivector_slice,srvector,cinterval,sparse_cidot>(v1,v2);
05368 }
05369 
05371 
05377 inline cinterval operator*(const scivector_slice& v1, const scvector& v2) {
05378   return slsp_vv_mult<scivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
05379 }
05380 
05382 
05388 inline cinterval operator*(const scivector_slice& v1, const sivector& v2) {
05389   return slsp_vv_mult<scivector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
05390 }
05391 
05393 
05399 inline cinterval operator*(const scivector_slice& v1, const scivector& v2) {
05400   return slsp_vv_mult<scivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
05401 }
05402 
05404 
05410 inline cinterval operator*(const srvector_slice& v1, const scivector& v2) {
05411   return slsp_vv_mult<srvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
05412 }
05413 
05415 
05421 inline cinterval operator*(const sivector_slice& v1, const scivector& v2) {
05422   return slsp_vv_mult<sivector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
05423 }
05424 
05426 
05432 inline cinterval operator*(const scvector_slice& v1, const scivector& v2) {
05433   return slsp_vv_mult<scvector_slice,scivector,cinterval,sparse_cidot>(v1,v2);
05434 }
05435 
05437 
05443 inline cinterval operator*(const scvector_slice& v1, const sivector& v2) {
05444   return slsp_vv_mult<scvector_slice,sivector,cinterval,sparse_cidot>(v1,v2);
05445 }
05446 
05448 
05454 inline cinterval operator*(const sivector_slice& v1, const scvector& v2) {
05455   return slsp_vv_mult<sivector_slice,scvector,cinterval,sparse_cidot>(v1,v2);
05456 }
05457 
05459 
05465 inline cinterval operator*(const scivector_slice& v1, const srvector_slice& v2) {
05466   return slsl_vv_mult<scivector_slice,srvector_slice,cinterval,sparse_cidot>(v1,v2);
05467 }
05468 
05470 
05476 inline cinterval operator*(const scivector_slice& v1, const scvector_slice& v2) {
05477   return slsl_vv_mult<scivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05478 }
05479 
05481 
05487 inline cinterval operator*(const scivector_slice& v1, const sivector_slice& v2) {
05488   return slsl_vv_mult<scivector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05489 }
05490 
05492 
05498 inline cinterval operator*(const scivector_slice& v1, const scivector_slice& v2) {
05499   return slsl_vv_mult<scivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05500 }
05501 
05503 
05509 inline cinterval operator*(const srvector_slice& v1, const scivector_slice& v2) {
05510   return slsl_vv_mult<srvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05511 }
05512 
05514 
05520 inline cinterval operator*(const scvector_slice& v1, const scivector_slice& v2) {
05521   return slsl_vv_mult<scvector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05522 }
05523 
05525 
05531 inline cinterval operator*(const sivector_slice& v1, const scivector_slice& v2) {
05532   return slsl_vv_mult<sivector_slice,scivector_slice,cinterval,sparse_cidot>(v1,v2);
05533 }
05534 
05536 
05542 inline cinterval operator*(const sivector_slice& v1, const scvector_slice& v2) {
05543   return slsl_vv_mult<sivector_slice,scvector_slice,cinterval,sparse_cidot>(v1,v2);
05544 }
05545 
05547 
05553 inline cinterval operator*(const scvector_slice& v1, const sivector_slice& v2) {
05554   return slsl_vv_mult<scvector_slice,sivector_slice,cinterval,sparse_cidot>(v1,v2);
05555 }
05556 
05558 inline scivector operator*(const scivector_slice& v, const real& s) {
05559   return sp_vs_mult<scivector_slice,real,scivector>(v,s);
05560 }
05561 
05563 inline scivector operator*(const scivector_slice& v, const complex& s) {
05564   return sp_vs_mult<scivector_slice,complex,scivector>(v,s);
05565 }
05566 
05568 inline scivector operator*(const scivector_slice& v, const interval& s) {
05569   return sp_vs_mult<scivector_slice,interval,scivector>(v,s);
05570 }
05571 
05573 inline scivector operator*(const scivector_slice& v, const cinterval& s) {
05574   return sp_vs_mult<scivector_slice,cinterval,scivector>(v,s);
05575 }
05576 
05578 inline scivector operator*(const srvector_slice& v, const cinterval& s) {
05579   return sp_vs_mult<srvector_slice,cinterval,scivector>(v,s);
05580 }
05581 
05583 inline scivector operator*(const scvector_slice& v, const cinterval& s) {
05584   return sp_vs_mult<scvector_slice,cinterval,scivector>(v,s);
05585 }
05586 
05588 inline scivector operator*(const sivector_slice& v, const cinterval& s) {
05589   return sp_vs_mult<sivector_slice,cinterval,scivector>(v,s);
05590 }
05591 
05593 inline scivector operator*(const scvector_slice& v, const interval& s) {
05594   return sp_vs_mult<scvector_slice,interval,scivector>(v,s);
05595 }
05596 
05598 inline scivector operator*(const sivector_slice& v, const complex& s) {
05599   return sp_vs_mult<sivector_slice,complex,scivector>(v,s);
05600 }
05601 
05603 inline scivector operator/(const scivector_slice& v, const real& s) {
05604   return sp_vs_div<scivector_slice,real,scivector>(v,s);
05605 }
05606 
05608 inline scivector operator/(const scivector_slice& v, const complex& s) {
05609   return sp_vs_div<scivector_slice,complex,scivector>(v,s);
05610 }
05611 
05613 inline scivector operator/(const scivector_slice& v, const interval& s) {
05614   return sp_vs_div<scivector_slice,interval,scivector>(v,s);
05615 }
05616 
05618 inline scivector operator/(const scivector_slice& v, const cinterval& s) {
05619   return sp_vs_div<scivector_slice,cinterval,scivector>(v,s);
05620 }
05621 
05623 inline scivector operator/(const srvector_slice& v, const cinterval& s) {
05624   return sp_vs_div<srvector_slice,cinterval,scivector>(v,s);
05625 }
05626 
05628 inline scivector operator/(const scvector_slice& v, const cinterval& s) {
05629   return sp_vs_div<scvector_slice,cinterval,scivector>(v,s);
05630 }
05631 
05633 inline scivector operator/(const sivector_slice& v, const cinterval& s) {
05634   return sp_vs_div<sivector_slice,cinterval,scivector>(v,s);
05635 }
05636 
05638 inline scivector operator/(const scvector_slice& v, const interval& s) {
05639   return sp_vs_div<scvector_slice,interval,scivector>(v,s);
05640 }
05641 
05643 inline scivector operator/(const sivector_slice& v, const complex& s) {
05644   return sp_vs_div<sivector_slice,complex,scivector>(v,s);
05645 }
05646 
05648 inline scivector operator*(const real& s, const scivector_slice& v) {
05649   return sp_sv_mult<real,scivector_slice,scivector>(s,v);
05650 }
05651 
05653 inline scivector operator*(const complex& s, const scivector_slice& v) {
05654   return sp_sv_mult<complex,scivector_slice,scivector>(s,v);
05655 }
05656 
05658 inline scivector operator*(const interval& s, const scivector_slice& v) {
05659   return sp_sv_mult<interval,scivector_slice,scivector>(s,v);
05660 }
05661 
05663 inline scivector operator*(const cinterval& s, const scivector_slice& v) {
05664   return sp_sv_mult<cinterval,scivector_slice,scivector>(s,v);
05665 }
05666 
05668 inline scivector operator*(const cinterval& s, const srvector_slice& v) {
05669   return sp_sv_mult<cinterval,srvector_slice,scivector>(s,v);
05670 }
05671 
05673 inline scivector operator*(const cinterval& s, const scvector_slice& v) {
05674   return sp_sv_mult<cinterval,scvector_slice,scivector>(s,v);
05675 }
05676 
05678 inline scivector operator*(const cinterval& s, const sivector_slice& v) {
05679   return sp_sv_mult<cinterval,sivector_slice,scivector>(s,v);
05680 }
05681 
05683 inline scivector operator*(const complex& s, const sivector_slice& v) {
05684   return sp_sv_mult<complex,sivector_slice,scivector>(s,v);
05685 }
05686 
05688 inline scivector operator*(const interval& s, const scvector_slice& v) {
05689   return sp_sv_mult<interval,scvector_slice,scivector>(s,v);
05690 }
05691 
05693 inline civector operator+(const civector& v1, const srvector_slice& v2) {
05694   return fsl_vv_add<civector,srvector_slice,civector>(v1,v2);
05695 }
05696 
05698 inline civector operator+(const civector& v1, const scvector_slice& v2) {
05699   return fsl_vv_add<civector,scvector_slice,civector>(v1,v2);
05700 }
05701 
05703 inline civector operator+(const civector& v1, const sivector_slice& v2) {
05704   return fsl_vv_add<civector,sivector_slice,civector>(v1,v2);
05705 }
05706 
05708 inline civector operator+(const civector& v1, const scivector_slice& v2) {
05709   return fsl_vv_add<civector,scivector_slice,civector>(v1,v2);
05710 }
05711 
05713 inline civector operator+(const rvector& v1, const scivector_slice& v2) {
05714   return fsl_vv_add<rvector,scivector_slice,civector>(v1,v2);
05715 }
05716 
05718 inline civector operator+(const cvector& v1, const scivector_slice& v2) {
05719   return fsl_vv_add<cvector,scivector_slice,civector>(v1,v2);
05720 }
05721 
05723 inline civector operator+(const ivector& v1, const scivector_slice& v2) {
05724   return fsl_vv_add<ivector,scivector_slice,civector>(v1,v2);
05725 }
05726 
05728 inline civector operator+(const cvector& v1, const sivector_slice& v2) {
05729   return fsl_vv_add<cvector,sivector_slice,civector>(v1,v2);
05730 }
05731 
05733 inline civector operator+(const ivector& v1, const scvector_slice& v2) {
05734   return fsl_vv_add<ivector,scvector_slice,civector>(v1,v2);
05735 }
05736 
05738 inline civector operator+(const scivector_slice& v1, const rvector& v2) {
05739   return slf_vv_add<scivector_slice,rvector,civector>(v1,v2);
05740 }
05741 
05743 inline civector operator+(const scivector_slice& v1, const cvector& v2) {
05744   return slf_vv_add<scivector_slice,cvector,civector>(v1,v2);
05745 }
05746 
05748 inline civector operator+(const scivector_slice& v1, const ivector& v2) {
05749   return slf_vv_add<scivector_slice,ivector,civector>(v1,v2);
05750 }
05751 
05753 inline civector operator+(const scivector_slice& v1, const civector& v2) {
05754   return slf_vv_add<scivector_slice,civector,civector>(v1,v2);
05755 }
05756 
05758 inline civector operator+(const srvector_slice& v1, const civector& v2) {
05759   return slf_vv_add<srvector_slice,civector,civector>(v1,v2);
05760 }
05761 
05763 inline civector operator+(const scvector_slice& v1, const civector& v2) {
05764   return slf_vv_add<scvector_slice,civector,civector>(v1,v2);
05765 }
05766 
05768 inline civector operator+(const sivector_slice& v1, const civector& v2) {
05769   return slf_vv_add<sivector_slice,civector,civector>(v1,v2);
05770 }
05771 
05773 inline civector operator+(const scvector_slice& v1, const ivector& v2) {
05774   return slf_vv_add<scvector_slice,ivector,civector>(v1,v2);
05775 }
05776 
05778 inline civector operator+(const sivector_slice& v1, const cvector& v2) {
05779   return slf_vv_add<sivector_slice,cvector,civector>(v1,v2);
05780 }
05781 
05783 inline civector operator+(const civector_slice& v1, const srvector_slice& v2) {
05784   return fsl_vv_add<civector_slice,srvector_slice,civector>(v1,v2);
05785 }
05786 
05788 inline civector operator+(const civector_slice& v1, const scvector_slice& v2) {
05789   return fsl_vv_add<civector_slice,scvector_slice,civector>(v1,v2);
05790 }
05791 
05793 inline civector operator+(const civector_slice& v1, const sivector_slice& v2) {
05794   return fsl_vv_add<civector_slice,sivector_slice,civector>(v1,v2);
05795 }
05796 
05798 inline civector operator+(const civector_slice& v1, const scivector_slice& v2) {
05799   return fsl_vv_add<civector_slice,scivector_slice,civector>(v1,v2);
05800 }
05801 
05803 inline civector operator+(const rvector_slice& v1, const scivector_slice& v2) {
05804   return fsl_vv_add<rvector_slice,scivector_slice,civector>(v1,v2);
05805 }
05806 
05808 inline civector operator+(const cvector_slice& v1, const scivector_slice& v2) {
05809   return fsl_vv_add<cvector_slice,scivector_slice,civector>(v1,v2);
05810 }
05811 
05813 inline civector operator+(const ivector_slice& v1, const scivector_slice& v2) {
05814   return fsl_vv_add<ivector_slice,scivector_slice,civector>(v1,v2);
05815 }
05816 
05818 inline civector operator+(const ivector_slice& v1, const scvector_slice& v2) {
05819   return fsl_vv_add<ivector_slice,scvector_slice,civector>(v1,v2);
05820 }
05821 
05823 inline civector operator+(const cvector_slice& v1, const sivector_slice& v2) {
05824   return fsl_vv_add<cvector_slice,sivector_slice,civector>(v1,v2);
05825 }
05826 
05828 inline civector operator+(const scivector_slice& v1, const rvector_slice& v2) {
05829   return slf_vv_add<scivector_slice,rvector_slice,civector>(v1,v2);
05830 }
05831 
05833 inline civector operator+(const scivector_slice& v1, const ivector_slice& v2) {
05834   return slf_vv_add<scivector_slice,ivector_slice,civector>(v1,v2);
05835 }
05836 
05838 inline civector operator+(const scivector_slice& v1, const cvector_slice& v2) {
05839   return slf_vv_add<scivector_slice,cvector_slice,civector>(v1,v2);
05840 }
05841 
05843 inline civector operator+(const scivector_slice& v1, const civector_slice& v2) {
05844   return slf_vv_add<scivector_slice,civector_slice,civector>(v1,v2);
05845 }
05846 
05848 inline civector operator+(const srvector_slice& v1, const civector_slice& v2) {
05849   return slf_vv_add<srvector_slice,civector_slice,civector>(v1,v2);
05850 }
05851 
05853 inline civector operator+(const sivector_slice& v1, const civector_slice& v2) {
05854   return slf_vv_add<sivector_slice,civector_slice,civector>(v1,v2);
05855 }
05856 
05858 inline civector operator+(const scvector_slice& v1, const civector_slice& v2) {
05859   return slf_vv_add<scvector_slice,civector_slice,civector>(v1,v2);
05860 }
05861 
05863 inline civector operator+(const scvector_slice& v1, const ivector_slice& v2) {
05864   return slf_vv_add<scvector_slice,ivector_slice,civector>(v1,v2);
05865 }
05866 
05868 inline civector operator+(const sivector_slice& v1, const cvector_slice& v2) {
05869   return slf_vv_add<sivector_slice,cvector_slice,civector>(v1,v2);
05870 }
05871 
05873 inline scivector operator+(const scivector_slice& v1, const srvector_slice& v2) {
05874   return slsl_vv_add<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
05875 }
05876 
05878 inline scivector operator+(const scivector_slice& v1, const scvector_slice& v2) {
05879   return slsl_vv_add<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
05880 }
05881 
05883 inline scivector operator+(const scivector_slice& v1, const sivector_slice& v2) {
05884   return slsl_vv_add<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
05885 }
05886 
05888 inline scivector operator+(const scivector_slice& v1, const scivector_slice& v2) {
05889   return slsl_vv_add<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
05890 }
05891 
05893 inline scivector operator+(const srvector_slice& v1, const scivector_slice& v2) {
05894   return slsl_vv_add<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
05895 }
05896 
05898 inline scivector operator+(const scvector_slice& v1, const scivector_slice& v2) {
05899   return slsl_vv_add<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
05900 }
05901 
05903 inline scivector operator+(const sivector_slice& v1, const scivector_slice& v2) {
05904   return slsl_vv_add<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
05905 }
05906 
05908 inline scivector operator+(const scvector_slice& v1, const sivector_slice& v2) {
05909   return slsl_vv_add<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
05910 }
05911 
05913 inline scivector operator+(const sivector_slice& v1, const scvector_slice& v2) {
05914   return slsl_vv_add<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
05915 }
05916 
05918 inline scivector operator+(const scivector& v1, const srvector_slice& v2) {
05919   return spsl_vv_add<scivector,srvector_slice,scivector,cinterval>(v1,v2);
05920 }
05921 
05923 inline scivector operator+(const scivector& v1, const scvector_slice& v2) {
05924   return spsl_vv_add<scivector,scvector_slice,scivector,cinterval>(v1,v2);
05925 }
05926 
05928 inline scivector operator+(const scivector& v1, const sivector_slice& v2) {
05929   return spsl_vv_add<scivector,sivector_slice,scivector,cinterval>(v1,v2);
05930 }
05931 
05933 inline scivector operator+(const scivector& v1, const scivector_slice& v2) {
05934   return spsl_vv_add<scivector,scivector_slice,scivector,cinterval>(v1,v2);
05935 }
05936 
05938 inline scivector operator+(const srvector& v1, const scivector_slice& v2) {
05939   return spsl_vv_add<srvector,scivector_slice,scivector,cinterval>(v1,v2);
05940 }
05941 
05943 inline scivector operator+(const scvector& v1, const scivector_slice& v2) {
05944   return spsl_vv_add<scvector,scivector_slice,scivector,cinterval>(v1,v2);
05945 }
05946 
05948 inline scivector operator+(const sivector& v1, const scivector_slice& v2) {
05949   return spsl_vv_add<sivector,scivector_slice,scivector,cinterval>(v1,v2);
05950 }
05951 
05953 inline scivector operator+(const scvector& v1, const sivector_slice& v2) {
05954   return spsl_vv_add<scvector,sivector_slice,scivector,cinterval>(v1,v2);
05955 }
05956 
05958 inline scivector operator+(const sivector& v1, const scvector_slice& v2) {
05959   return spsl_vv_add<sivector,scvector_slice,scivector,cinterval>(v1,v2);
05960 }
05961 
05963 inline scivector operator+(const scivector_slice& v1, const srvector& v2) {
05964   return slsp_vv_add<scivector_slice,srvector,scivector,cinterval>(v1,v2);
05965 }
05966 
05968 inline scivector operator+(const scivector_slice& v1, const scvector& v2) {
05969   return slsp_vv_add<scivector_slice,scvector,scivector,cinterval>(v1,v2);
05970 }
05971 
05973 inline scivector operator+(const scivector_slice& v1, const sivector& v2) {
05974   return slsp_vv_add<scivector_slice,sivector,scivector,cinterval>(v1,v2);
05975 }
05976 
05978 inline scivector operator+(const scivector_slice& v1, const scivector& v2) {
05979   return slsp_vv_add<scivector_slice,scivector,scivector,cinterval>(v1,v2);
05980 }
05981 
05983 inline scivector operator+(const srvector_slice& v1, const scivector& v2) {
05984   return slsp_vv_add<srvector_slice,scivector,scivector,cinterval>(v1,v2);
05985 }
05986 
05988 inline scivector operator+(const scvector_slice& v1, const scivector& v2) {
05989   return slsp_vv_add<scvector_slice,scivector,scivector,cinterval>(v1,v2);
05990 }
05991 
05993 inline scivector operator+(const sivector_slice& v1, const scivector& v2) {
05994   return slsp_vv_add<sivector_slice,scivector,scivector,cinterval>(v1,v2);
05995 }
05996 
05998 inline scivector operator+(const scvector_slice& v1, const sivector& v2) {
05999   return slsp_vv_add<scvector_slice,sivector,scivector,cinterval>(v1,v2);
06000 }
06001 
06003 inline scivector operator+(const sivector_slice& v1, const scvector& v2) {
06004   return slsp_vv_add<sivector_slice,scvector,scivector,cinterval>(v1,v2);
06005 }
06006 
06008 inline civector operator-(const civector& v1, const srvector_slice& v2) {
06009   return fsl_vv_sub<civector,srvector_slice,civector>(v1,v2);
06010 }
06011 
06013 inline civector operator-(const civector& v1, const scvector_slice& v2) {
06014   return fsl_vv_sub<civector,scvector_slice,civector>(v1,v2);
06015 }
06016 
06018 inline civector operator-(const civector& v1, const sivector_slice& v2) {
06019   return fsl_vv_sub<civector,sivector_slice,civector>(v1,v2);
06020 }
06021 
06023 inline civector operator-(const civector& v1, const scivector_slice& v2) {
06024   return fsl_vv_sub<civector,scivector_slice,civector>(v1,v2);
06025 }
06026 
06028 inline civector operator-(const rvector& v1, const scivector_slice& v2) {
06029   return fsl_vv_sub<rvector,scivector_slice,civector>(v1,v2);
06030 }
06031 
06033 inline civector operator-(const cvector& v1, const scivector_slice& v2) {
06034   return fsl_vv_sub<cvector,scivector_slice,civector>(v1,v2);
06035 }
06036 
06038 inline civector operator-(const ivector& v1, const scivector_slice& v2) {
06039   return fsl_vv_sub<ivector,scivector_slice,civector>(v1,v2);
06040 }
06041 
06043 inline civector operator-(const cvector& v1, const sivector_slice& v2) {
06044   return fsl_vv_sub<cvector,sivector_slice,civector>(v1,v2);
06045 }
06046 
06048 inline civector operator-(const ivector& v1, const scvector_slice& v2) {
06049   return fsl_vv_sub<ivector,scvector_slice,civector>(v1,v2);
06050 }
06051 
06053 inline civector operator-(const scivector_slice& v1, const rvector& v2) {
06054   return slf_vv_sub<scivector_slice,rvector,civector>(v1,v2);
06055 }
06056 
06058 inline civector operator-(const scivector_slice& v1, const cvector& v2) {
06059   return slf_vv_sub<scivector_slice,cvector,civector>(v1,v2);
06060 }
06061 
06063 inline civector operator-(const scivector_slice& v1, const ivector& v2) {
06064   return slf_vv_sub<scivector_slice,ivector,civector>(v1,v2);
06065 }
06066 
06068 inline civector operator-(const scivector_slice& v1, const civector& v2) {
06069   return slf_vv_sub<scivector_slice,civector,civector>(v1,v2);
06070 }
06071 
06073 inline civector operator-(const srvector_slice& v1, const civector& v2) {
06074   return slf_vv_sub<srvector_slice,civector,civector>(v1,v2);
06075 }
06076 
06078 inline civector operator-(const scvector_slice& v1, const civector& v2) {
06079   return slf_vv_sub<scvector_slice,civector,civector>(v1,v2);
06080 }
06081 
06083 inline civector operator-(const sivector_slice& v1, const civector& v2) {
06084   return slf_vv_sub<sivector_slice,civector,civector>(v1,v2);
06085 }
06086 
06088 inline civector operator-(const scvector_slice& v1, const ivector& v2) {
06089   return slf_vv_sub<scvector_slice,ivector,civector>(v1,v2);
06090 }
06091 
06093 inline civector operator-(const sivector_slice& v1, const cvector& v2) {
06094   return slf_vv_sub<sivector_slice,cvector,civector>(v1,v2);
06095 }
06096 
06098 inline civector operator-(const civector_slice& v1, const srvector_slice& v2) {
06099   return fsl_vv_sub<civector_slice,srvector_slice,civector>(v1,v2);
06100 }
06101 
06103 inline civector operator-(const civector_slice& v1, const scvector_slice& v2) {
06104   return fsl_vv_sub<civector_slice,scvector_slice,civector>(v1,v2);
06105 }
06106 
06108 inline civector operator-(const civector_slice& v1, const sivector_slice& v2) {
06109   return fsl_vv_sub<civector_slice,sivector_slice,civector>(v1,v2);
06110 }
06111 
06113 inline civector operator-(const civector_slice& v1, const scivector_slice& v2) {
06114   return fsl_vv_sub<civector_slice,scivector_slice,civector>(v1,v2);
06115 }
06116 
06118 inline civector operator-(const rvector_slice& v1, const scivector_slice& v2) {
06119   return fsl_vv_sub<rvector_slice,scivector_slice,civector>(v1,v2);
06120 }
06121 
06123 inline civector operator-(const cvector_slice& v1, const scivector_slice& v2) {
06124   return fsl_vv_sub<cvector_slice,scivector_slice,civector>(v1,v2);
06125 }
06126 
06128 inline civector operator-(const ivector_slice& v1, const scivector_slice& v2) {
06129   return fsl_vv_sub<ivector_slice,scivector_slice,civector>(v1,v2);
06130 }
06131 
06133 inline civector operator-(const ivector_slice& v1, const scvector_slice& v2) {
06134   return fsl_vv_sub<ivector_slice,scvector_slice,civector>(v1,v2);
06135 }
06136 
06138 inline civector operator-(const cvector_slice& v1, const sivector_slice& v2) {
06139   return fsl_vv_sub<cvector_slice,sivector_slice,civector>(v1,v2);
06140 }
06141 
06143 inline civector operator-(const scivector_slice& v1, const rvector_slice& v2) {
06144   return slf_vv_sub<scivector_slice,rvector_slice,civector>(v1,v2);
06145 }
06146 
06148 inline civector operator-(const scivector_slice& v1, const ivector_slice& v2) {
06149   return slf_vv_sub<scivector_slice,ivector_slice,civector>(v1,v2);
06150 }
06151 
06153 inline civector operator-(const scivector_slice& v1, const cvector_slice& v2) {
06154   return slf_vv_sub<scivector_slice,cvector_slice,civector>(v1,v2);
06155 }
06156 
06158 inline civector operator-(const scivector_slice& v1, const civector_slice& v2) {
06159   return slf_vv_sub<scivector_slice,civector_slice,civector>(v1,v2);
06160 }
06161 
06163 inline civector operator-(const srvector_slice& v1, const civector_slice& v2) {
06164   return slf_vv_sub<srvector_slice,civector_slice,civector>(v1,v2);
06165 }
06166 
06168 inline civector operator-(const sivector_slice& v1, const civector_slice& v2) {
06169   return slf_vv_sub<sivector_slice,civector_slice,civector>(v1,v2);
06170 }
06171 
06173 inline civector operator-(const scvector_slice& v1, const civector_slice& v2) {
06174   return slf_vv_sub<scvector_slice,civector_slice,civector>(v1,v2);
06175 }
06176 
06178 inline civector operator-(const scvector_slice& v1, const ivector_slice& v2) {
06179   return slf_vv_sub<scvector_slice,ivector_slice,civector>(v1,v2);
06180 }
06181 
06183 inline civector operator-(const sivector_slice& v1, const cvector_slice& v2) {
06184   return slf_vv_sub<sivector_slice,cvector_slice,civector>(v1,v2);
06185 }
06186 
06188 inline scivector operator-(const scivector_slice& v1, const srvector_slice& v2) {
06189   return slsl_vv_sub<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
06190 }
06191 
06193 inline scivector operator-(const scivector_slice& v1, const scvector_slice& v2) {
06194   return slsl_vv_sub<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
06195 }
06196 
06198 inline scivector operator-(const scivector_slice& v1, const sivector_slice& v2) {
06199   return slsl_vv_sub<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
06200 }
06201 
06203 inline scivector operator-(const scivector_slice& v1, const scivector_slice& v2) {
06204   return slsl_vv_sub<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06205 }
06206 
06208 inline scivector operator-(const srvector_slice& v1, const scivector_slice& v2) {
06209   return slsl_vv_sub<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06210 }
06211 
06213 inline scivector operator-(const scvector_slice& v1, const scivector_slice& v2) {
06214   return slsl_vv_sub<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06215 }
06216 
06218 inline scivector operator-(const sivector_slice& v1, const scivector_slice& v2) {
06219   return slsl_vv_sub<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06220 }
06221 
06223 inline scivector operator-(const scvector_slice& v1, const sivector_slice& v2) {
06224   return slsl_vv_sub<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
06225 }
06226 
06228 inline scivector operator-(const sivector_slice& v1, const scvector_slice& v2) {
06229   return slsl_vv_sub<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
06230 }
06231 
06233 inline scivector operator-(const scivector& v1, const srvector_slice& v2) {
06234   return spsl_vv_sub<scivector,srvector_slice,scivector,cinterval>(v1,v2);
06235 }
06236 
06238 inline scivector operator-(const scivector& v1, const scvector_slice& v2) {
06239   return spsl_vv_sub<scivector,scvector_slice,scivector,cinterval>(v1,v2);
06240 }
06241 
06243 inline scivector operator-(const scivector& v1, const sivector_slice& v2) {
06244   return spsl_vv_sub<scivector,sivector_slice,scivector,cinterval>(v1,v2);
06245 }
06246 
06248 inline scivector operator-(const scivector& v1, const scivector_slice& v2) {
06249   return spsl_vv_sub<scivector,scivector_slice,scivector,cinterval>(v1,v2);
06250 }
06251 
06253 inline scivector operator-(const srvector& v1, const scivector_slice& v2) {
06254   return spsl_vv_sub<srvector,scivector_slice,scivector,cinterval>(v1,v2);
06255 }
06256 
06258 inline scivector operator-(const scvector& v1, const scivector_slice& v2) {
06259   return spsl_vv_sub<scvector,scivector_slice,scivector,cinterval>(v1,v2);
06260 }
06261 
06263 inline scivector operator-(const sivector& v1, const scivector_slice& v2) {
06264   return spsl_vv_sub<sivector,scivector_slice,scivector,cinterval>(v1,v2);
06265 }
06266 
06268 inline scivector operator-(const scvector& v1, const sivector_slice& v2) {
06269   return spsl_vv_sub<scvector,sivector_slice,scivector,cinterval>(v1,v2);
06270 }
06271 
06273 inline scivector operator-(const sivector& v1, const scvector_slice& v2) {
06274   return spsl_vv_sub<sivector,scvector_slice,scivector,cinterval>(v1,v2);
06275 }
06276 
06278 inline scivector operator-(const scivector_slice& v1, const srvector& v2) {
06279   return slsp_vv_sub<scivector_slice,srvector,scivector,cinterval>(v1,v2);
06280 }
06281 
06283 inline scivector operator-(const scivector_slice& v1, const scvector& v2) {
06284   return slsp_vv_sub<scivector_slice,scvector,scivector,cinterval>(v1,v2);
06285 }
06286 
06288 inline scivector operator-(const scivector_slice& v1, const sivector& v2) {
06289   return slsp_vv_sub<scivector_slice,sivector,scivector,cinterval>(v1,v2);
06290 }
06291 
06293 inline scivector operator-(const scivector_slice& v1, const scivector& v2) {
06294   return slsp_vv_sub<scivector_slice,scivector,scivector,cinterval>(v1,v2);
06295 }
06296 
06298 inline scivector operator-(const srvector_slice& v1, const scivector& v2) {
06299   return slsp_vv_sub<srvector_slice,scivector,scivector,cinterval>(v1,v2);
06300 }
06301 
06303 inline scivector operator-(const scvector_slice& v1, const scivector& v2) {
06304   return slsp_vv_sub<scvector_slice,scivector,scivector,cinterval>(v1,v2);
06305 }
06306 
06308 inline scivector operator-(const sivector_slice& v1, const scivector& v2) {
06309   return slsp_vv_sub<sivector_slice,scivector,scivector,cinterval>(v1,v2);
06310 }
06311 
06313 inline scivector operator-(const scvector_slice& v1, const sivector& v2) {
06314   return slsp_vv_sub<scvector_slice,sivector,scivector,cinterval>(v1,v2);
06315 }
06316 
06318 inline scivector operator-(const sivector_slice& v1, const scvector& v2) {
06319   return slsp_vv_sub<sivector_slice,scvector,scivector,cinterval>(v1,v2);
06320 }
06321 
06323 inline civector operator|(const civector& v1, const srvector_slice& v2) {
06324   return fsl_vv_hull<civector,srvector_slice,civector>(v1,v2);
06325 }
06326 
06328 inline civector operator|(const civector& v1, const scvector_slice& v2) {
06329   return fsl_vv_hull<civector,scvector_slice,civector>(v1,v2);
06330 }
06331 
06333 inline civector operator|(const civector& v1, const sivector_slice& v2) {
06334   return fsl_vv_hull<civector,sivector_slice,civector>(v1,v2);
06335 }
06336 
06338 inline civector operator|(const civector& v1, const scivector_slice& v2) {
06339   return fsl_vv_hull<civector,scivector_slice,civector>(v1,v2);
06340 }
06341 
06343 inline civector operator|(const rvector& v1, const scivector_slice& v2) {
06344   return fsl_vv_hull<rvector,scivector_slice,civector>(v1,v2);
06345 }
06346 
06348 inline civector operator|(const cvector& v1, const scivector_slice& v2) {
06349   return fsl_vv_hull<cvector,scivector_slice,civector>(v1,v2);
06350 }
06351 
06353 inline civector operator|(const ivector& v1, const scivector_slice& v2) {
06354   return fsl_vv_hull<ivector,scivector_slice,civector>(v1,v2);
06355 }
06356 
06358 inline civector operator|(const cvector& v1, const sivector_slice& v2) {
06359   return fsl_vv_hull<cvector,sivector_slice,civector>(v1,v2);
06360 }
06361 
06363 inline civector operator|(const ivector& v1, const scvector_slice& v2) {
06364   return fsl_vv_hull<ivector,scvector_slice,civector>(v1,v2);
06365 }
06366 
06368 inline civector operator|(const scivector_slice& v1, const rvector& v2) {
06369   return slf_vv_hull<scivector_slice,rvector,civector>(v1,v2);
06370 }
06371 
06373 inline civector operator|(const scivector_slice& v1, const cvector& v2) {
06374   return slf_vv_hull<scivector_slice,cvector,civector>(v1,v2);
06375 }
06376 
06378 inline civector operator|(const scivector_slice& v1, const ivector& v2) {
06379   return slf_vv_hull<scivector_slice,ivector,civector>(v1,v2);
06380 }
06381 
06383 inline civector operator|(const scivector_slice& v1, const civector& v2) {
06384   return slf_vv_hull<scivector_slice,civector,civector>(v1,v2);
06385 }
06386 
06388 inline civector operator|(const srvector_slice& v1, const civector& v2) {
06389   return slf_vv_hull<srvector_slice,civector,civector>(v1,v2);
06390 }
06391 
06393 inline civector operator|(const scvector_slice& v1, const civector& v2) {
06394   return slf_vv_hull<scvector_slice,civector,civector>(v1,v2);
06395 }
06396 
06398 inline civector operator|(const sivector_slice& v1, const civector& v2) {
06399   return slf_vv_hull<sivector_slice,civector,civector>(v1,v2);
06400 }
06401 
06403 inline civector operator|(const scvector_slice& v1, const ivector& v2) {
06404   return slf_vv_hull<scvector_slice,ivector,civector>(v1,v2);
06405 }
06406 
06408 inline civector operator|(const sivector_slice& v1, const cvector& v2) {
06409   return slf_vv_hull<sivector_slice,cvector,civector>(v1,v2);
06410 }
06411 
06413 inline civector operator|(const civector_slice& v1, const srvector_slice& v2) {
06414   return fsl_vv_hull<civector_slice,srvector_slice,civector>(v1,v2);
06415 }
06416 
06418 inline civector operator|(const civector_slice& v1, const scvector_slice& v2) {
06419   return fsl_vv_hull<civector_slice,scvector_slice,civector>(v1,v2);
06420 }
06421 
06423 inline civector operator|(const civector_slice& v1, const sivector_slice& v2) {
06424   return fsl_vv_hull<civector_slice,sivector_slice,civector>(v1,v2);
06425 }
06426 
06428 inline civector operator|(const civector_slice& v1, const scivector_slice& v2) {
06429   return fsl_vv_hull<civector_slice,scivector_slice,civector>(v1,v2);
06430 }
06431 
06433 inline civector operator|(const rvector_slice& v1, const scivector_slice& v2) {
06434   return fsl_vv_hull<rvector_slice,scivector_slice,civector>(v1,v2);
06435 }
06436 
06438 inline civector operator|(const cvector_slice& v1, const scivector_slice& v2) {
06439   return fsl_vv_hull<cvector_slice,scivector_slice,civector>(v1,v2);
06440 }
06441 
06443 inline civector operator|(const ivector_slice& v1, const scivector_slice& v2) {
06444   return fsl_vv_hull<ivector_slice,scivector_slice,civector>(v1,v2);
06445 }
06446 
06448 inline civector operator|(const ivector_slice& v1, const scvector_slice& v2) {
06449   return fsl_vv_hull<ivector_slice,scvector_slice,civector>(v1,v2);
06450 }
06451 
06453 inline civector operator|(const cvector_slice& v1, const sivector_slice& v2) {
06454   return fsl_vv_hull<cvector_slice,sivector_slice,civector>(v1,v2);
06455 }
06456 
06458 inline civector operator|(const scivector_slice& v1, const rvector_slice& v2) {
06459   return slf_vv_hull<scivector_slice,rvector_slice,civector>(v1,v2);
06460 }
06461 
06463 inline civector operator|(const scivector_slice& v1, const ivector_slice& v2) {
06464   return slf_vv_hull<scivector_slice,ivector_slice,civector>(v1,v2);
06465 }
06466 
06468 inline civector operator|(const scivector_slice& v1, const cvector_slice& v2) {
06469   return slf_vv_hull<scivector_slice,cvector_slice,civector>(v1,v2);
06470 }
06471 
06473 inline civector operator|(const scivector_slice& v1, const civector_slice& v2) {
06474   return slf_vv_hull<scivector_slice,civector_slice,civector>(v1,v2);
06475 }
06476 
06478 inline civector operator|(const srvector_slice& v1, const civector_slice& v2) {
06479   return slf_vv_hull<srvector_slice,civector_slice,civector>(v1,v2);
06480 }
06481 
06483 inline civector operator|(const sivector_slice& v1, const civector_slice& v2) {
06484   return slf_vv_hull<sivector_slice,civector_slice,civector>(v1,v2);
06485 }
06486 
06488 inline civector operator|(const scvector_slice& v1, const civector_slice& v2) {
06489   return slf_vv_hull<scvector_slice,civector_slice,civector>(v1,v2);
06490 }
06491 
06493 inline civector operator|(const scvector_slice& v1, const ivector_slice& v2) {
06494   return slf_vv_hull<scvector_slice,ivector_slice,civector>(v1,v2);
06495 }
06496 
06498 inline civector operator|(const sivector_slice& v1, const cvector_slice& v2) {
06499   return slf_vv_hull<sivector_slice,cvector_slice,civector>(v1,v2);
06500 }
06501 
06503 inline scivector operator|(const scivector_slice& v1, const srvector_slice& v2) {
06504   return slsl_vv_hull<scivector_slice,srvector_slice,scivector,cinterval>(v1,v2);
06505 }
06506 
06508 inline scivector operator|(const scivector_slice& v1, const scvector_slice& v2) {
06509   return slsl_vv_hull<scivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
06510 }
06511 
06513 inline scivector operator|(const scivector_slice& v1, const sivector_slice& v2) {
06514   return slsl_vv_hull<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
06515 }
06516 
06518 inline scivector operator|(const scivector_slice& v1, const scivector_slice& v2) {
06519   return slsl_vv_hull<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06520 }
06521 
06523 inline scivector operator|(const srvector_slice& v1, const scivector_slice& v2) {
06524   return slsl_vv_hull<srvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06525 }
06526 
06528 inline scivector operator|(const scvector_slice& v1, const scivector_slice& v2) {
06529   return slsl_vv_hull<scvector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06530 }
06531 
06533 inline scivector operator|(const sivector_slice& v1, const scivector_slice& v2) {
06534   return slsl_vv_hull<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06535 }
06536 
06538 inline scivector operator|(const scvector_slice& v1, const sivector_slice& v2) {
06539   return slsl_vv_hull<scvector_slice,sivector_slice,scivector,cinterval>(v1,v2);
06540 }
06541 
06543 inline scivector operator|(const sivector_slice& v1, const scvector_slice& v2) {
06544   return slsl_vv_hull<sivector_slice,scvector_slice,scivector,cinterval>(v1,v2);
06545 }
06546 
06548 inline scivector operator|(const scivector& v1, const srvector_slice& v2) {
06549   return spsl_vv_hull<scivector,srvector_slice,scivector,cinterval>(v1,v2);
06550 }
06551 
06553 inline scivector operator|(const scivector& v1, const scvector_slice& v2) {
06554   return spsl_vv_hull<scivector,scvector_slice,scivector,cinterval>(v1,v2);
06555 }
06556 
06558 inline scivector operator|(const scivector& v1, const sivector_slice& v2) {
06559   return spsl_vv_hull<scivector,sivector_slice,scivector,cinterval>(v1,v2);
06560 }
06561 
06563 inline scivector operator|(const scivector& v1, const scivector_slice& v2) {
06564   return spsl_vv_hull<scivector,scivector_slice,scivector,cinterval>(v1,v2);
06565 }
06566 
06568 inline scivector operator|(const srvector& v1, const scivector_slice& v2) {
06569   return spsl_vv_hull<srvector,scivector_slice,scivector,cinterval>(v1,v2);
06570 }
06571 
06573 inline scivector operator|(const scvector& v1, const scivector_slice& v2) {
06574   return spsl_vv_hull<scvector,scivector_slice,scivector,cinterval>(v1,v2);
06575 }
06576 
06578 inline scivector operator|(const sivector& v1, const scivector_slice& v2) {
06579   return spsl_vv_hull<sivector,scivector_slice,scivector,cinterval>(v1,v2);
06580 }
06581 
06583 inline scivector operator|(const scvector& v1, const sivector_slice& v2) {
06584   return spsl_vv_hull<scvector,sivector_slice,scivector,cinterval>(v1,v2);
06585 }
06586 
06588 inline scivector operator|(const sivector& v1, const scvector_slice& v2) {
06589   return spsl_vv_hull<sivector,scvector_slice,scivector,cinterval>(v1,v2);
06590 }
06591 
06593 inline scivector operator|(const scivector_slice& v1, const srvector& v2) {
06594   return slsp_vv_hull<scivector_slice,srvector,scivector,cinterval>(v1,v2);
06595 }
06596 
06598 inline scivector operator|(const scivector_slice& v1, const scvector& v2) {
06599   return slsp_vv_hull<scivector_slice,scvector,scivector,cinterval>(v1,v2);
06600 }
06601 
06603 inline scivector operator|(const scivector_slice& v1, const sivector& v2) {
06604   return slsp_vv_hull<scivector_slice,sivector,scivector,cinterval>(v1,v2);
06605 }
06606 
06608 inline scivector operator|(const scivector_slice& v1, const scivector& v2) {
06609   return slsp_vv_hull<scivector_slice,scivector,scivector,cinterval>(v1,v2);
06610 }
06611 
06613 inline scivector operator|(const srvector_slice& v1, const scivector& v2) {
06614   return slsp_vv_hull<srvector_slice,scivector,scivector,cinterval>(v1,v2);
06615 }
06616 
06618 inline scivector operator|(const scvector_slice& v1, const scivector& v2) {
06619   return slsp_vv_hull<scvector_slice,scivector,scivector,cinterval>(v1,v2);
06620 }
06621 
06623 inline scivector operator|(const sivector_slice& v1, const scivector& v2) {
06624   return slsp_vv_hull<sivector_slice,scivector,scivector,cinterval>(v1,v2);
06625 }
06626 
06628 inline scivector operator|(const scvector_slice& v1, const sivector& v2) {
06629   return slsp_vv_hull<scvector_slice,sivector,scivector,cinterval>(v1,v2);
06630 }
06631 
06633 inline scivector operator|(const sivector_slice& v1, const scvector& v2) {
06634   return slsp_vv_hull<sivector_slice,scvector,scivector,cinterval>(v1,v2);
06635 }
06636 
06638 inline civector operator&(const civector& v1, const sivector_slice& v2) {
06639   return fsl_vv_intersect<civector,sivector_slice,civector>(v1,v2);
06640 }
06641 
06643 inline civector operator&(const civector& v1, const scivector_slice& v2) {
06644   return fsl_vv_intersect<civector,scivector_slice,civector>(v1,v2);
06645 }
06646 
06648 inline civector operator&(const ivector& v1, const scivector_slice& v2) {
06649   return fsl_vv_intersect<ivector,scivector_slice,civector>(v1,v2);
06650 }
06651 
06653 inline civector operator&(const scivector_slice& v1, const ivector& v2) {
06654   return slf_vv_intersect<scivector_slice,ivector,civector>(v1,v2);
06655 }
06656 
06658 inline civector operator&(const scivector_slice& v1, const civector& v2) {
06659   return slf_vv_intersect<scivector_slice,civector,civector>(v1,v2);
06660 }
06661 
06663 inline civector operator&(const sivector_slice& v1, const civector& v2) {
06664   return slf_vv_intersect<sivector_slice,civector,civector>(v1,v2);
06665 }
06666 
06668 inline civector operator&(const civector_slice& v1, const sivector_slice& v2) {
06669   return fsl_vv_intersect<civector_slice,sivector_slice,civector>(v1,v2);
06670 }
06671 
06673 inline civector operator&(const civector_slice& v1, const scivector_slice& v2) {
06674   return fsl_vv_intersect<civector_slice,scivector_slice,civector>(v1,v2);
06675 }
06676 
06678 inline civector operator&(const ivector_slice& v1, const scivector_slice& v2) {
06679   return fsl_vv_intersect<ivector_slice,scivector_slice,civector>(v1,v2);
06680 }
06681 
06683 inline civector operator&(const scivector_slice& v1, const ivector_slice& v2) {
06684   return slf_vv_intersect<scivector_slice,ivector_slice,civector>(v1,v2);
06685 }
06686 
06688 inline civector operator&(const scivector_slice& v1, const civector_slice& v2) {
06689   return slf_vv_intersect<scivector_slice,civector_slice,civector>(v1,v2);
06690 }
06691 
06693 inline civector operator&(const sivector_slice& v1, const civector_slice& v2) {
06694   return slf_vv_intersect<sivector_slice,civector_slice,civector>(v1,v2);
06695 }
06696 
06698 inline scivector operator&(const scivector_slice& v1, const sivector_slice& v2) {
06699   return slsl_vv_intersect<scivector_slice,sivector_slice,scivector,cinterval>(v1,v2);
06700 }
06701 
06703 inline scivector operator&(const scivector_slice& v1, const scivector_slice& v2) {
06704   return slsl_vv_intersect<scivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06705 }
06706 
06708 inline scivector operator&(const sivector_slice& v1, const scivector_slice& v2) {
06709   return slsl_vv_intersect<sivector_slice,scivector_slice,scivector,cinterval>(v1,v2);
06710 }
06711 
06713 inline scivector operator&(const scivector& v1, const sivector_slice& v2) {
06714   return spsl_vv_intersect<scivector,sivector_slice,scivector,cinterval>(v1,v2);
06715 }
06716 
06718 inline scivector operator&(const scivector& v1, const scivector_slice& v2) {
06719   return spsl_vv_intersect<scivector,scivector_slice,scivector,cinterval>(v1,v2);
06720 }
06721 
06723 inline scivector operator&(const sivector& v1, const scivector_slice& v2) {
06724   return spsl_vv_intersect<sivector,scivector_slice,scivector,cinterval>(v1,v2);
06725 }
06726 
06728 inline scivector operator&(const scivector_slice& v1, const sivector& v2) {
06729   return slsp_vv_intersect<scivector_slice,sivector,scivector,cinterval>(v1,v2);
06730 }
06731 
06733 inline scivector operator&(const scivector_slice& v1, const scivector& v2) {
06734   return slsp_vv_intersect<scivector_slice,scivector,scivector,cinterval>(v1,v2);
06735 }
06736 
06738 inline scivector operator&(const sivector_slice& v1, const scivector& v2) {
06739   return slsp_vv_intersect<sivector_slice,scivector,scivector,cinterval>(v1,v2);
06740 }
06741 
06742 inline civector& civector::operator+=(const srvector_slice& v2) {
06743   return fsl_vv_addassign(*this,v2);
06744 }
06745 
06746 inline civector& civector::operator+=(const scvector_slice& v2) {
06747   return fsl_vv_addassign(*this,v2);
06748 }
06749 
06750 inline civector& civector::operator+=(const sivector_slice& v2) {
06751   return fsl_vv_addassign(*this,v2);
06752 }
06753 
06754 inline civector& civector::operator+=(const scivector_slice& v2) {
06755   return fsl_vv_addassign(*this,v2);
06756 }
06757 
06758 inline civector_slice& civector_slice::operator+=(const srvector_slice& v2) {
06759   return fsl_vv_addassign(*this,v2);
06760 }
06761 
06762 inline civector_slice& civector_slice::operator+=(const scvector_slice& v2) {
06763   return fsl_vv_addassign(*this,v2);
06764 }
06765 
06766 inline civector_slice& civector_slice::operator+=(const sivector_slice& v2) {
06767   return fsl_vv_addassign(*this,v2);
06768 }
06769 
06770 inline civector_slice& civector_slice::operator+=(const scivector_slice& v2) {
06771   return fsl_vv_addassign(*this,v2);
06772 }
06773 
06774 inline scivector& scivector::operator+=(const srvector_slice& v2) {
06775   return spsl_vv_addassign(*this,v2);
06776 }
06777 
06778 inline scivector& scivector::operator+=(const scvector_slice& v2) {
06779   return spsl_vv_addassign(*this,v2);
06780 }
06781 
06782 inline scivector& scivector::operator+=(const sivector_slice& v2) {
06783   return spsl_vv_addassign(*this,v2);
06784 }
06785 
06786 inline scivector& scivector::operator+=(const scivector_slice& v2) {
06787   return spsl_vv_addassign(*this,v2);
06788 }
06789 
06790 inline civector& civector::operator-=(const srvector_slice& v2) {
06791   return fsl_vv_subassign(*this,v2);
06792 }
06793 
06794 inline civector& civector::operator-=(const scvector_slice& v2) {
06795   return fsl_vv_subassign(*this,v2);
06796 }
06797 
06798 inline civector& civector::operator-=(const sivector_slice& v2) {
06799   return fsl_vv_subassign(*this,v2);
06800 }
06801 
06802 inline civector& civector::operator-=(const scivector_slice& v2) {
06803   return fsl_vv_subassign(*this,v2);
06804 }
06805 
06806 inline civector_slice& civector_slice::operator-=(const srvector_slice& v2) {
06807   return fsl_vv_subassign(*this,v2);
06808 }
06809 
06810 inline civector_slice& civector_slice::operator-=(const scvector_slice& v2) {
06811   return fsl_vv_subassign(*this,v2);
06812 }
06813 
06814 inline civector_slice& civector_slice::operator-=(const sivector_slice& v2) {
06815   return fsl_vv_subassign(*this,v2);
06816 }
06817 
06818 inline civector_slice& civector_slice::operator-=(const scivector_slice& v2) {
06819   return fsl_vv_subassign(*this,v2);
06820 }
06821 
06822 inline scivector& scivector::operator-=(const srvector_slice& v2) {
06823   return spsl_vv_subassign(*this,v2);
06824 }
06825 
06826 inline scivector& scivector::operator-=(const scvector_slice& v2) {
06827   return spsl_vv_subassign(*this,v2);
06828 }
06829 
06830 inline scivector& scivector::operator-=(const sivector_slice& v2) {
06831   return spsl_vv_subassign(*this,v2);
06832 }
06833 
06834 inline scivector& scivector::operator-=(const scivector_slice& v2) {
06835   return spsl_vv_subassign(*this,v2);
06836 }
06837 
06838 inline civector& civector::operator|=(const srvector_slice& v2) {
06839   return fsl_vv_hullassign(*this,v2);
06840 }
06841 
06842 inline civector& civector::operator|=(const scvector_slice& v2) {
06843   return fsl_vv_hullassign(*this,v2);
06844 }
06845 
06846 inline civector& civector::operator|=(const sivector_slice& v2) {
06847   return fsl_vv_hullassign(*this,v2);
06848 }
06849 
06850 inline civector& civector::operator|=(const scivector_slice& v2) {
06851   return fsl_vv_hullassign(*this,v2);
06852 }
06853 
06854 inline civector_slice& civector_slice::operator|=(const srvector_slice& v2) {
06855   return fsl_vv_hullassign(*this,v2);
06856 }
06857 
06858 inline civector_slice& civector_slice::operator|=(const scvector_slice& v2) {
06859   return fsl_vv_hullassign(*this,v2);
06860 }
06861 
06862 inline civector_slice& civector_slice::operator|=(const sivector_slice& v2) {
06863   return fsl_vv_hullassign(*this,v2);
06864 }
06865 
06866 inline civector_slice& civector_slice::operator|=(const scivector_slice& v2) {
06867   return fsl_vv_hullassign(*this,v2);
06868 }
06869 
06870 inline scivector& scivector::operator|=(const srvector_slice& v2) {
06871   return spsl_vv_hullassign(*this,v2);
06872 }
06873 
06874 inline scivector& scivector::operator|=(const scvector_slice& v2) {
06875   return spsl_vv_hullassign(*this,v2);
06876 }
06877 
06878 inline scivector& scivector::operator|=(const sivector_slice& v2) {
06879   return spsl_vv_hullassign(*this,v2);
06880 }
06881 
06882 inline scivector& scivector::operator|=(const scivector_slice& v2) {
06883   return spsl_vv_hullassign(*this,v2);
06884 }
06885 
06886 inline civector& civector::operator&=(const sivector_slice& v2) {
06887   return fsl_vv_intersectassign(*this,v2);
06888 }
06889 
06890 inline civector& civector::operator&=(const scivector_slice& v2) {
06891   return fsl_vv_intersectassign(*this,v2);
06892 }
06893 
06894 inline civector_slice& civector_slice::operator&=(const sivector_slice& v2) {
06895   return fsl_vv_intersectassign(*this,v2);
06896 }
06897 
06898 inline civector_slice& civector_slice::operator&=(const scivector_slice& v2) {
06899   return fsl_vv_intersectassign(*this,v2);
06900 }
06901 
06902 inline scivector& scivector::operator&=(const sivector_slice& v2) {
06903   return spsl_vv_intersectassign(*this,v2);
06904 }
06905 
06906 inline scivector& scivector::operator&=(const scivector_slice& v2) {
06907   return spsl_vv_intersectassign(*this,v2);
06908 }
06909 
06911 
06914 inline bool operator==(const scivector_slice& v1, const srvector_slice& v2) {
06915   return slsl_vv_comp(v1,v2);
06916 }
06917 
06919 
06922 inline bool operator==(const scivector_slice& v1, const scvector_slice& v2) {
06923   return slsl_vv_comp(v1,v2);
06924 }
06925 
06927 
06930 inline bool operator==(const scivector_slice& v1, const sivector_slice& v2) {
06931   return slsl_vv_comp(v1,v2);
06932 }
06933 
06935 
06938 inline bool operator==(const scivector_slice& v1, const scivector_slice& v2) {
06939   return slsl_vv_comp(v1,v2);
06940 }
06941 
06943 
06946 inline bool operator==(const srvector_slice& v1, const scivector_slice& v2) {
06947   return slsl_vv_comp(v1,v2);
06948 }
06949 
06951 
06954 inline bool operator==(const scvector_slice& v1, const scivector_slice& v2) {
06955   return slsl_vv_comp(v1,v2);
06956 }
06957 
06959 
06962 inline bool operator==(const sivector_slice& v1, const scivector_slice& v2) {
06963   return slsl_vv_comp(v1,v2);
06964 }
06965 
06967 
06970 inline bool operator==(const scivector_slice& v1, const srvector& v2) {
06971   return slsp_vv_comp(v1,v2);
06972 }
06973 
06975 
06978 inline bool operator==(const scivector_slice& v1, const scvector& v2) {
06979   return slsp_vv_comp(v1,v2);
06980 }
06981 
06983 
06986 inline bool operator==(const scivector_slice& v1, const sivector& v2) {
06987   return slsp_vv_comp(v1,v2);
06988 }
06989 
06991 
06994 inline bool operator==(const scivector_slice& v1, const scivector& v2) {
06995   return slsp_vv_comp(v1,v2);
06996 }
06997 
06999 
07002 inline bool operator==(const srvector_slice& v1, const scivector& v2) {
07003   return slsp_vv_comp(v1,v2);
07004 }
07005 
07007 
07010 inline bool operator==(const scvector_slice& v1, const scivector& v2) {
07011   return slsp_vv_comp(v1,v2);
07012 }
07013 
07015 
07018 inline bool operator==(const sivector_slice& v1, const scivector& v2) {
07019   return slsp_vv_comp(v1,v2);
07020 }
07021 
07023 
07026 inline bool operator==(const scivector& v1, const srvector_slice& v2) {
07027   return spsl_vv_comp(v1,v2);
07028 }
07029 
07031 
07034 inline bool operator==(const scivector& v1, const scvector_slice& v2) {
07035   return spsl_vv_comp(v1,v2);
07036 }
07037 
07039 
07042 inline bool operator==(const scivector& v1, const sivector_slice& v2) {
07043   return spsl_vv_comp(v1,v2);
07044 }
07045 
07047 
07050 inline bool operator==(const scivector& v1, const scivector_slice& v2) {
07051   return spsl_vv_comp(v1,v2);
07052 }
07053 
07055 
07058 inline bool operator==(const srvector& v1, const scivector_slice& v2) {
07059   return spsl_vv_comp(v1,v2);
07060 }
07061 
07063 
07066 inline bool operator==(const scvector& v1, const scivector_slice& v2) {
07067   return spsl_vv_comp(v1,v2);
07068 }
07069 
07071 
07074 inline bool operator==(const sivector& v1, const scivector_slice& v2) {
07075   return spsl_vv_comp(v1,v2);
07076 }
07077 
07079 
07082 inline bool operator==(const scivector_slice& v1, const rvector& v2) {
07083   return slf_vv_comp(v1,v2);
07084 }
07085 
07087 
07090 inline bool operator==(const scivector_slice& v1, const cvector& v2) {
07091   return slf_vv_comp(v1,v2);
07092 }
07093 
07095 
07098 inline bool operator==(const scivector_slice& v1, const ivector& v2) {
07099   return slf_vv_comp(v1,v2);
07100 }
07101 
07103 
07106 inline bool operator==(const scivector_slice& v1, const civector& v2) {
07107   return slf_vv_comp(v1,v2);
07108 }
07109 
07111 
07114 inline bool operator==(const srvector_slice& v1, const civector& v2) {
07115   return slf_vv_comp(v1,v2);
07116 }
07117 
07119 
07122 inline bool operator==(const sivector_slice& v1, const civector& v2) {
07123   return slf_vv_comp(v1,v2);
07124 }
07125 
07127 
07130 inline bool operator==(const scvector_slice& v1, const civector& v2) {
07131   return slf_vv_comp(v1,v2);
07132 }
07133 
07135 
07138 inline bool operator==(const civector& v1, const srvector_slice& v2) {
07139   return fsl_vv_comp(v1,v2);
07140 }
07141 
07143 
07146 inline bool operator==(const civector& v1, const scvector_slice& v2) {
07147   return fsl_vv_comp(v1,v2);
07148 }
07149 
07151 
07154 inline bool operator==(const civector& v1, const sivector_slice& v2) {
07155   return fsl_vv_comp(v1,v2);
07156 }
07157 
07159 
07162 inline bool operator==(const civector& v1, const scivector_slice& v2) {
07163   return fsl_vv_comp(v1,v2);
07164 }
07165 
07167 
07170 inline bool operator==(const rvector& v1, const scivector_slice& v2) {
07171   return fsl_vv_comp(v1,v2);
07172 }
07173 
07175 
07178 inline bool operator==(const cvector& v1, const scivector_slice& v2) {
07179   return fsl_vv_comp(v1,v2);
07180 }
07181 
07183 
07186 inline bool operator==(const ivector& v1, const scivector_slice& v2) {
07187   return fsl_vv_comp(v1,v2);
07188 }
07189 
07191 
07194 inline bool operator==(const scivector_slice& v1, const rvector_slice& v2) {
07195   return slf_vv_comp(v1,v2);
07196 }
07197 
07199 
07202 inline bool operator==(const scivector_slice& v1, const ivector_slice& v2) {
07203   return slf_vv_comp(v1,v2);
07204 }
07205 
07207 
07210 inline bool operator==(const scivector_slice& v1, const cvector_slice& v2) {
07211   return slf_vv_comp(v1,v2);
07212 }
07213 
07215 
07218 inline bool operator==(const scivector_slice& v1, const civector_slice& v2) {
07219   return slf_vv_comp(v1,v2);
07220 }
07221 
07223 
07226 inline bool operator==(const srvector_slice& v1, const civector_slice& v2) {
07227   return slf_vv_comp(v1,v2);
07228 }
07229 
07231 
07234 inline bool operator==(const sivector_slice& v1, const civector_slice& v2) {
07235   return slf_vv_comp(v1,v2);
07236 }
07237 
07239 
07242 inline bool operator==(const scvector_slice& v1, const civector_slice& v2) {
07243   return slf_vv_comp(v1,v2);
07244 }
07245 
07247 
07250 inline bool operator==(const civector_slice& v1, const srvector_slice& v2) {
07251   return fsl_vv_comp(v1,v2);
07252 }
07253 
07255 
07258 inline bool operator==(const civector_slice& v1, const scvector_slice& v2) {
07259   return fsl_vv_comp(v1,v2);
07260 }
07261 
07263 
07266 inline bool operator==(const civector_slice& v1, const sivector_slice& v2) {
07267   return fsl_vv_comp(v1,v2);
07268 }
07269 
07271 
07274 inline bool operator==(const civector_slice& v1, const scivector_slice& v2) {
07275   return fsl_vv_comp(v1,v2);
07276 }
07277 
07279 
07282 inline bool operator==(const rvector_slice& v1, const scivector_slice& v2) {
07283   return fsl_vv_comp(v1,v2);
07284 }
07285 
07287 
07290 inline bool operator==(const cvector_slice& v1, const scivector_slice& v2) {
07291   return fsl_vv_comp(v1,v2);
07292 }
07293 
07295 
07298 inline bool operator==(const ivector_slice& v1, const scivector_slice& v2) {
07299   return fsl_vv_comp(v1,v2);
07300 }
07301 
07303 
07306 inline bool operator!=(const scivector_slice& v1, const srvector_slice& v2) {
07307   return !slsl_vv_comp(v1,v2);
07308 }
07309 
07311 
07314 inline bool operator!=(const scivector_slice& v1, const scvector_slice& v2) {
07315   return !slsl_vv_comp(v1,v2);
07316 }
07317 
07319 
07322 inline bool operator!=(const scivector_slice& v1, const sivector_slice& v2) {
07323   return !slsl_vv_comp(v1,v2);
07324 }
07325 
07327 
07330 inline bool operator!=(const scivector_slice& v1, const scivector_slice& v2) {
07331   return !slsl_vv_comp(v1,v2);
07332 }
07333 
07335 
07338 inline bool operator!=(const srvector_slice& v1, const scivector_slice& v2) {
07339   return !slsl_vv_comp(v1,v2);
07340 }
07341 
07343 
07346 inline bool operator!=(const scvector_slice& v1, const scivector_slice& v2) {
07347   return !slsl_vv_comp(v1,v2);
07348 }
07349 
07351 
07354 inline bool operator!=(const sivector_slice& v1, const scivector_slice& v2) {
07355   return !slsl_vv_comp(v1,v2);
07356 }
07357 
07359 
07362 inline bool operator!=(const scivector_slice& v1, const srvector& v2) {
07363   return !slsp_vv_comp(v1,v2);
07364 }
07365 
07367 
07370 inline bool operator!=(const scivector_slice& v1, const scvector& v2) {
07371   return !slsp_vv_comp(v1,v2);
07372 }
07373 
07375 
07378 inline bool operator!=(const scivector_slice& v1, const sivector& v2) {
07379   return !slsp_vv_comp(v1,v2);
07380 }
07381 
07383 
07386 inline bool operator!=(const scivector_slice& v1, const scivector& v2) {
07387   return !slsp_vv_comp(v1,v2);
07388 }
07389 
07391 
07394 inline bool operator!=(const srvector_slice& v1, const scivector& v2) {
07395   return !slsp_vv_comp(v1,v2);
07396 }
07397 
07399 
07402 inline bool operator!=(const scvector_slice& v1, const scivector& v2) {
07403   return !slsp_vv_comp(v1,v2);
07404 }
07405 
07407 
07410 inline bool operator!=(const sivector_slice& v1, const scivector& v2) {
07411   return !slsp_vv_comp(v1,v2);
07412 }
07413 
07415 
07418 inline bool operator!=(const scivector& v1, const srvector_slice& v2) {
07419   return !spsl_vv_comp(v1,v2);
07420 }
07421 
07423 
07426 inline bool operator!=(const scivector& v1, const scvector_slice& v2) {
07427   return !spsl_vv_comp(v1,v2);
07428 }
07429 
07431 
07434 inline bool operator!=(const scivector& v1, const sivector_slice& v2) {
07435   return !spsl_vv_comp(v1,v2);
07436 }
07437 
07439 
07442 inline bool operator!=(const scivector& v1, const scivector_slice& v2) {
07443   return !spsl_vv_comp(v1,v2);
07444 }
07445 
07447 
07450 inline bool operator!=(const srvector& v1, const scivector_slice& v2) {
07451   return !spsl_vv_comp(v1,v2);
07452 }
07453 
07455 
07458 inline bool operator!=(const scvector& v1, const scivector_slice& v2) {
07459   return !spsl_vv_comp(v1,v2);
07460 }
07461 
07463 
07466 inline bool operator!=(const sivector& v1, const scivector_slice& v2) {
07467   return !spsl_vv_comp(v1,v2);
07468 }
07469 
07471 
07474 inline bool operator!=(const scivector_slice& v1, const rvector& v2) {
07475   return !slf_vv_comp(v1,v2);
07476 }
07477 
07479 
07482 inline bool operator!=(const scivector_slice& v1, const cvector& v2) {
07483   return !slf_vv_comp(v1,v2);
07484 }
07485 
07487 
07490 inline bool operator!=(const scivector_slice& v1, const ivector& v2) {
07491   return !slf_vv_comp(v1,v2);
07492 }
07493 
07495 
07498 inline bool operator!=(const scivector_slice& v1, const civector& v2) {
07499   return !slf_vv_comp(v1,v2);
07500 }
07501 
07503 
07506 inline bool operator!=(const srvector_slice& v1, const civector& v2) {
07507   return !slf_vv_comp(v1,v2);
07508 }
07509 
07511 
07514 inline bool operator!=(const sivector_slice& v1, const civector& v2) {
07515   return !slf_vv_comp(v1,v2);
07516 }
07517 
07519 
07522 inline bool operator!=(const scvector_slice& v1, const civector& v2) {
07523   return !slf_vv_comp(v1,v2);
07524 }
07525 
07527 
07530 inline bool operator!=(const civector& v1, const srvector_slice& v2) {
07531   return !fsl_vv_comp(v1,v2);
07532 }
07533 
07535 
07538 inline bool operator!=(const civector& v1, const scvector_slice& v2) {
07539   return !fsl_vv_comp(v1,v2);
07540 }
07541 
07543 
07546 inline bool operator!=(const civector& v1, const sivector_slice& v2) {
07547   return !fsl_vv_comp(v1,v2);
07548 }
07549 
07551 
07554 inline bool operator!=(const civector& v1, const scivector_slice& v2) {
07555   return !fsl_vv_comp(v1,v2);
07556 }
07557 
07559 
07562 inline bool operator!=(const rvector& v1, const scivector_slice& v2) {
07563   return !fsl_vv_comp(v1,v2);
07564 }
07565 
07567 
07570 inline bool operator!=(const cvector& v1, const scivector_slice& v2) {
07571   return !fsl_vv_comp(v1,v2);
07572 }
07573 
07575 
07578 inline bool operator!=(const ivector& v1, const scivector_slice& v2) {
07579   return !fsl_vv_comp(v1,v2);
07580 }
07581 
07583 
07586 inline bool operator!=(const scivector_slice& v1, const rvector_slice& v2) {
07587   return !slf_vv_comp(v1,v2);
07588 }
07589 
07591 
07594 inline bool operator!=(const scivector_slice& v1, const ivector_slice& v2) {
07595   return !slf_vv_comp(v1,v2);
07596 }
07597 
07599 
07602 inline bool operator!=(const scivector_slice& v1, const cvector_slice& v2) {
07603   return !slf_vv_comp(v1,v2);
07604 }
07605 
07607 
07610 inline bool operator!=(const scivector_slice& v1, const civector_slice& v2) {
07611   return !slf_vv_comp(v1,v2);
07612 }
07613 
07615 
07618 inline bool operator!=(const srvector_slice& v1, const civector_slice& v2) {
07619   return !slf_vv_comp(v1,v2);
07620 }
07621 
07623 
07626 inline bool operator!=(const sivector_slice& v1, const civector_slice& v2) {
07627   return !slf_vv_comp(v1,v2);
07628 }
07629 
07631 
07634 inline bool operator!=(const scvector_slice& v1, const civector_slice& v2) {
07635   return !slf_vv_comp(v1,v2);
07636 }
07637 
07639 
07642 inline bool operator!=(const civector_slice& v1, const srvector_slice& v2) {
07643   return !fsl_vv_comp(v1,v2);
07644 }
07645 
07647 
07650 inline bool operator!=(const civector_slice& v1, const scvector_slice& v2) {
07651   return !fsl_vv_comp(v1,v2);
07652 }
07653 
07655 
07658 inline bool operator!=(const civector_slice& v1, const sivector_slice& v2) {
07659   return !fsl_vv_comp(v1,v2);
07660 }
07661 
07663 
07666 inline bool operator!=(const civector_slice& v1, const scivector_slice& v2) {
07667   return !fsl_vv_comp(v1,v2);
07668 }
07669 
07671 
07674 inline bool operator!=(const rvector_slice& v1, const scivector_slice& v2) {
07675   return !fsl_vv_comp(v1,v2);
07676 }
07677 
07679 
07682 inline bool operator!=(const cvector_slice& v1, const scivector_slice& v2) {
07683   return !fsl_vv_comp(v1,v2);
07684 }
07685 
07687 
07690 inline bool operator!=(const ivector_slice& v1, const scivector_slice& v2) {
07691   return !fsl_vv_comp(v1,v2);
07692 }
07693 
07695 
07698 inline bool operator<(const scivector_slice& v1, const sivector_slice& v2) {
07699   return slsl_vv_less<scivector_slice,sivector_slice,cinterval>(v1,v2);
07700 }
07701 
07703 
07706 inline bool operator<(const scivector_slice& v1, const scivector_slice& v2) {
07707   return slsl_vv_less<scivector_slice,scivector_slice,cinterval>(v1,v2);
07708 }
07709 
07711 
07714 inline bool operator<(const srvector_slice& v1, const scivector_slice& v2) {
07715   return slsl_vv_less<srvector_slice,scivector_slice,cinterval>(v1,v2);
07716 }
07717 
07719 
07722 inline bool operator<(const scvector_slice& v1, const scivector_slice& v2) {
07723   return slsl_vv_less<scvector_slice,scivector_slice,cinterval>(v1,v2);
07724 }
07725 
07727 
07730 inline bool operator<(const sivector_slice& v1, const scivector_slice& v2) {
07731   return slsl_vv_less<sivector_slice,scivector_slice,cinterval>(v1,v2);
07732 }
07733 
07735 
07738 inline bool operator<(const scivector_slice& v1, const sivector& v2) {
07739   return slsp_vv_less<scivector_slice,sivector,cinterval>(v1,v2);
07740 }
07741 
07743 
07746 inline bool operator<(const scivector_slice& v1, const scivector& v2) {
07747   return slsp_vv_less<scivector_slice,scivector,cinterval>(v1,v2);
07748 }
07749 
07751 
07754 inline bool operator<(const srvector_slice& v1, const scivector& v2) {
07755   return slsp_vv_less<srvector_slice,scivector,cinterval>(v1,v2);
07756 }
07757 
07759 
07762 inline bool operator<(const scvector_slice& v1, const scivector& v2) {
07763   return slsp_vv_less<scvector_slice,scivector,cinterval>(v1,v2);
07764 }
07765 
07767 
07770 inline bool operator<(const sivector_slice& v1, const scivector& v2) {
07771   return slsp_vv_less<sivector_slice,scivector,cinterval>(v1,v2);
07772 }
07773 
07775 
07778 inline bool operator<(const scivector& v1, const sivector_slice& v2) {
07779   return spsl_vv_less<scivector,sivector_slice,cinterval>(v1,v2);
07780 }
07781 
07783 
07786 inline bool operator<(const scivector& v1, const scivector_slice& v2) {
07787   return spsl_vv_less<scivector,scivector_slice,cinterval>(v1,v2);
07788 }
07789 
07791 
07794 inline bool operator<(const srvector& v1, const scivector_slice& v2) {
07795   return spsl_vv_less<srvector,scivector_slice,cinterval>(v1,v2);
07796 }
07797 
07799 
07802 inline bool operator<(const scvector& v1, const scivector_slice& v2) {
07803   return spsl_vv_less<scvector,scivector_slice,cinterval>(v1,v2);
07804 }
07805 
07807 
07810 inline bool operator<(const sivector& v1, const scivector_slice& v2) {
07811   return spsl_vv_less<sivector,scivector_slice,cinterval>(v1,v2);
07812 }
07813 
07815 
07818 inline bool operator<(const scivector_slice& v1, const ivector& v2) {
07819   return slf_vv_less<scivector_slice,ivector,cinterval>(v1,v2);
07820 }
07821 
07823 
07826 inline bool operator<(const scivector_slice& v1, const civector& v2) {
07827   return slf_vv_less<scivector_slice,civector,cinterval>(v1,v2);
07828 }
07829 
07831 
07834 inline bool operator<(const srvector_slice& v1, const civector& v2) {
07835   return slf_vv_less<srvector_slice,civector,cinterval>(v1,v2);
07836 }
07837 
07839 
07842 inline bool operator<(const sivector_slice& v1, const civector& v2) {
07843   return slf_vv_less<sivector_slice,civector,cinterval>(v1,v2);
07844 }
07845 
07847 
07850 inline bool operator<(const scvector_slice& v1, const civector& v2) {
07851   return slf_vv_less<scvector_slice,civector,cinterval>(v1,v2);
07852 }
07853 
07855 
07858 inline bool operator<(const civector& v1, const sivector_slice& v2) {
07859   return fsl_vv_less<civector,sivector_slice,cinterval>(v1,v2);
07860 }
07861 
07863 
07866 inline bool operator<(const civector& v1, const scivector_slice& v2) {
07867   return fsl_vv_less<civector,scivector_slice,cinterval>(v1,v2);
07868 }
07869 
07871 
07874 inline bool operator<(const rvector& v1, const scivector_slice& v2) {
07875   return fsl_vv_less<rvector,scivector_slice,cinterval>(v1,v2);
07876 }
07877 
07879 
07882 inline bool operator<(const cvector& v1, const scivector_slice& v2) {
07883   return fsl_vv_less<cvector,scivector_slice,cinterval>(v1,v2);
07884 }
07885 
07887 
07890 inline bool operator<(const ivector& v1, const scivector_slice& v2) {
07891   return fsl_vv_less<ivector,scivector_slice,cinterval>(v1,v2);
07892 }
07893 
07895 
07898 inline bool operator<=(const scivector_slice& v1, const sivector_slice& v2) {
07899   return slsl_vv_leq<scivector_slice,sivector_slice,cinterval>(v1,v2);
07900 }
07901 
07903 
07906 inline bool operator<=(const scivector_slice& v1, const scivector_slice& v2) {
07907   return slsl_vv_leq<scivector_slice,scivector_slice,cinterval>(v1,v2);
07908 }
07909 
07911 
07914 inline bool operator<=(const srvector_slice& v1, const scivector_slice& v2) {
07915   return slsl_vv_leq<srvector_slice,scivector_slice,cinterval>(v1,v2);
07916 }
07917 
07919 
07922 inline bool operator<=(const scvector_slice& v1, const scivector_slice& v2) {
07923   return slsl_vv_leq<scvector_slice,scivector_slice,cinterval>(v1,v2);
07924 }
07925 
07927 
07930 inline bool operator<=(const sivector_slice& v1, const scivector_slice& v2) {
07931   return slsl_vv_leq<sivector_slice,scivector_slice,cinterval>(v1,v2);
07932 }
07933 
07935 
07938 inline bool operator<=(const scivector_slice& v1, const sivector& v2) {
07939   return slsp_vv_leq<scivector_slice,sivector,cinterval>(v1,v2);
07940 }
07941 
07943 
07946 inline bool operator<=(const scivector_slice& v1, const scivector& v2) {
07947   return slsp_vv_leq<scivector_slice,scivector,cinterval>(v1,v2);
07948 }
07949 
07951 
07954 inline bool operator<=(const srvector_slice& v1, const scivector& v2) {
07955   return slsp_vv_leq<srvector_slice,scivector,cinterval>(v1,v2);
07956 }
07957 
07959 
07962 inline bool operator<=(const scvector_slice& v1, const scivector& v2) {
07963   return slsp_vv_leq<scvector_slice,scivector,cinterval>(v1,v2);
07964 }
07965 
07967 
07970 inline bool operator<=(const sivector_slice& v1, const scivector& v2) {
07971   return slsp_vv_leq<sivector_slice,scivector,cinterval>(v1,v2);
07972 }
07973 
07975 
07978 inline bool operator<=(const scivector& v1, const sivector_slice& v2) {
07979   return spsl_vv_leq<scivector,sivector_slice,cinterval>(v1,v2);
07980 }
07981 
07983 
07986 inline bool operator<=(const scivector& v1, const scivector_slice& v2) {
07987   return spsl_vv_leq<scivector,scivector_slice,cinterval>(v1,v2);
07988 }
07989 
07991 
07994 inline bool operator<=(const srvector& v1, const scivector_slice& v2) {
07995   return spsl_vv_leq<srvector,scivector_slice,cinterval>(v1,v2);
07996 }
07997 
07999 
08002 inline bool operator<=(const scvector& v1, const scivector_slice& v2) {
08003   return spsl_vv_leq<scvector,scivector_slice,cinterval>(v1,v2);
08004 }
08005 
08007 
08010 inline bool operator<=(const sivector& v1, const scivector_slice& v2) {
08011   return spsl_vv_leq<sivector,scivector_slice,cinterval>(v1,v2);
08012 }
08013 
08015 
08018 inline bool operator<=(const scivector_slice& v1, const ivector& v2) {
08019   return slf_vv_leq<scivector_slice,ivector,cinterval>(v1,v2);
08020 }
08021 
08023 
08026 inline bool operator<=(const scivector_slice& v1, const civector& v2) {
08027   return slf_vv_leq<scivector_slice,civector,cinterval>(v1,v2);
08028 }
08029 
08031 
08034 inline bool operator<=(const srvector_slice& v1, const civector& v2) {
08035   return slf_vv_leq<srvector_slice,civector,cinterval>(v1,v2);
08036 }
08037 
08039 
08042 inline bool operator<=(const sivector_slice& v1, const civector& v2) {
08043   return slf_vv_leq<sivector_slice,civector,cinterval>(v1,v2);
08044 }
08045 
08047 
08050 inline bool operator<=(const scvector_slice& v1, const civector& v2) {
08051   return slf_vv_leq<scvector_slice,civector,cinterval>(v1,v2);
08052 }
08053 
08055 
08058 inline bool operator<=(const civector& v1, const sivector_slice& v2) {
08059   return fsl_vv_leq<civector,sivector_slice,cinterval>(v1,v2);
08060 }
08061 
08063 
08066 inline bool operator<=(const civector& v1, const scivector_slice& v2) {
08067   return fsl_vv_leq<civector,scivector_slice,cinterval>(v1,v2);
08068 }
08069 
08071 
08074 inline bool operator<=(const rvector& v1, const scivector_slice& v2) {
08075   return fsl_vv_leq<rvector,scivector_slice,cinterval>(v1,v2);
08076 }
08077 
08079 
08082 inline bool operator<=(const cvector& v1, const scivector_slice& v2) {
08083   return fsl_vv_leq<cvector,scivector_slice,cinterval>(v1,v2);
08084 }
08085 
08087 
08090 inline bool operator<=(const ivector& v1, const scivector_slice& v2) {
08091   return fsl_vv_leq<ivector,scivector_slice,cinterval>(v1,v2);
08092 }
08093 
08095 
08098 inline bool operator>(const scivector_slice& v1, const srvector_slice& v2) {
08099   return slsl_vv_greater<scivector_slice,srvector_slice,cinterval>(v1,v2);
08100 }
08101 
08103 
08106 inline bool operator>(const scivector_slice& v1, const scvector_slice& v2) {
08107   return slsl_vv_greater<scivector_slice,scvector_slice,cinterval>(v1,v2);
08108 }
08109 
08111 
08114 inline bool operator>(const scivector_slice& v1, const sivector_slice& v2) {
08115   return slsl_vv_greater<scivector_slice,sivector_slice,cinterval>(v1,v2);
08116 }
08117 
08119 
08122 inline bool operator>(const scivector_slice& v1, const scivector_slice& v2) {
08123   return slsl_vv_greater<scivector_slice,scivector_slice,cinterval>(v1,v2);
08124 }
08125 
08127 
08130 inline bool operator>(const sivector_slice& v1, const scivector_slice& v2) {
08131   return slsl_vv_greater<sivector_slice,scivector_slice,cinterval>(v1,v2);
08132 }
08133 
08135 
08138 inline bool operator>(const scivector_slice& v1, const srvector& v2) {
08139   return slsp_vv_greater<scivector_slice,srvector,cinterval>(v1,v2);
08140 }
08141 
08143 
08146 inline bool operator>(const scivector_slice& v1, const scvector& v2) {
08147   return slsp_vv_greater<scivector_slice,scvector,cinterval>(v1,v2);
08148 }
08149 
08151 
08154 inline bool operator>(const scivector_slice& v1, const sivector& v2) {
08155   return slsp_vv_greater<scivector_slice,sivector,cinterval>(v1,v2);
08156 }
08157 
08159 
08162 inline bool operator>(const scivector_slice& v1, const scivector& v2) {
08163   return slsp_vv_greater<scivector_slice,scivector,cinterval>(v1,v2);
08164 }
08165 
08167 
08170 inline bool operator>(const sivector_slice& v1, const scivector& v2) {
08171   return slsp_vv_greater<sivector_slice,scivector,cinterval>(v1,v2);
08172 }
08173 
08175 
08178 inline bool operator>(const scivector& v1, const srvector_slice& v2) {
08179   return spsl_vv_greater<scivector,srvector_slice,cinterval>(v1,v2);
08180 }
08181 
08183 
08186 inline bool operator>(const scivector& v1, const scvector_slice& v2) {
08187   return spsl_vv_greater<scivector,scvector_slice,cinterval>(v1,v2);
08188 }
08189 
08191 
08194 inline bool operator>(const scivector& v1, const sivector_slice& v2) {
08195   return spsl_vv_greater<scivector,sivector_slice,cinterval>(v1,v2);
08196 }
08197 
08199 
08202 inline bool operator>(const scivector& v1, const scivector_slice& v2) {
08203   return spsl_vv_greater<scivector,scivector_slice,cinterval>(v1,v2);
08204 }
08205 
08207 
08210 inline bool operator>(const sivector& v1, const scivector_slice& v2) {
08211   return spsl_vv_greater<sivector,scivector_slice,cinterval>(v1,v2);
08212 }
08213 
08215 
08218 inline bool operator>(const scivector_slice& v1, const rvector& v2) {
08219   return slf_vv_greater<scivector_slice,rvector,cinterval>(v1,v2);
08220 }
08221 
08223 
08226 inline bool operator>(const scivector_slice& v1, const cvector& v2) {
08227   return slf_vv_greater<scivector_slice,cvector,cinterval>(v1,v2);
08228 }
08229 
08231 
08234 inline bool operator>(const scivector_slice& v1, const ivector& v2) {
08235   return slf_vv_greater<scivector_slice,ivector,cinterval>(v1,v2);
08236 }
08237 
08239 
08242 inline bool operator>(const scivector_slice& v1, const civector& v2) {
08243   return slf_vv_greater<scivector_slice,civector,cinterval>(v1,v2);
08244 }
08245 
08247 
08250 inline bool operator>(const sivector_slice& v1, const civector& v2) {
08251   return slf_vv_greater<sivector_slice,civector,cinterval>(v1,v2);
08252 }
08253 
08255 
08258 inline bool operator>(const civector& v1, const srvector_slice& v2) {
08259   return fsl_vv_greater<civector,srvector_slice,cinterval>(v1,v2);
08260 }
08261 
08263 
08266 inline bool operator>(const civector& v1, const scvector_slice& v2) {
08267   return fsl_vv_greater<civector,scvector_slice,cinterval>(v1,v2);
08268 }
08269 
08271 
08274 inline bool operator>(const civector& v1, const sivector_slice& v2) {
08275   return fsl_vv_greater<civector,sivector_slice,cinterval>(v1,v2);
08276 }
08277 
08279 
08282 inline bool operator>(const civector& v1, const scivector_slice& v2) {
08283   return fsl_vv_greater<civector,scivector_slice,cinterval>(v1,v2);
08284 }
08285 
08287 
08290 inline bool operator>(const ivector& v1, const scivector_slice& v2) {
08291   return fsl_vv_greater<ivector,scivector_slice,cinterval>(v1,v2);
08292 }
08293 
08295 
08298 inline bool operator>(const scivector_slice& v1, const rvector_slice& v2) {
08299   return slf_vv_greater<scivector_slice,rvector_slice,cinterval>(v1,v2);
08300 }
08301 
08303 
08306 inline bool operator>(const scivector_slice& v1, const ivector_slice& v2) {
08307   return slf_vv_greater<scivector_slice,ivector_slice,cinterval>(v1,v2);
08308 }
08309 
08311 
08314 inline bool operator>(const scivector_slice& v1, const cvector_slice& v2) {
08315   return slf_vv_greater<scivector_slice,cvector_slice,cinterval>(v1,v2);
08316 }
08317 
08319 
08322 inline bool operator>(const scivector_slice& v1, const civector_slice& v2) {
08323   return slf_vv_greater<scivector_slice,civector_slice,cinterval>(v1,v2);
08324 }
08325 
08327 
08330 inline bool operator>(const sivector_slice& v1, const civector_slice& v2) {
08331   return slf_vv_greater<sivector_slice,civector_slice,cinterval>(v1,v2);
08332 }
08333 
08335 
08338 inline bool operator>(const civector_slice& v1, const srvector_slice& v2) {
08339   return fsl_vv_greater<civector_slice,srvector_slice,cinterval>(v1,v2);
08340 }
08341 
08343 
08346 inline bool operator>(const civector_slice& v1, const scvector_slice& v2) {
08347   return fsl_vv_greater<civector_slice,scvector_slice,cinterval>(v1,v2);
08348 }
08349 
08351 
08354 inline bool operator>(const civector_slice& v1, const sivector_slice& v2) {
08355   return fsl_vv_greater<civector_slice,sivector_slice,cinterval>(v1,v2);
08356 }
08357 
08359 
08362 inline bool operator>(const civector_slice& v1, const scivector_slice& v2) {
08363   return fsl_vv_greater<civector_slice,scivector_slice,cinterval>(v1,v2);
08364 }
08365 
08367 
08370 inline bool operator>(const ivector_slice& v1, const scivector_slice& v2) {
08371   return fsl_vv_greater<ivector_slice,scivector_slice,cinterval>(v1,v2);
08372 }
08373 
08375 
08378 inline bool operator>=(const scivector_slice& v1, const srvector_slice& v2) {
08379   return slsl_vv_geq<scivector_slice,srvector_slice,cinterval>(v1,v2);
08380 }
08381 
08383 
08386 inline bool operator>=(const scivector_slice& v1, const scvector_slice& v2) {
08387   return slsl_vv_geq<scivector_slice,scvector_slice,cinterval>(v1,v2);
08388 }
08389 
08391 
08394 inline bool operator>=(const scivector_slice& v1, const sivector_slice& v2) {
08395   return slsl_vv_geq<scivector_slice,sivector_slice,cinterval>(v1,v2);
08396 }
08397 
08399 
08402 inline bool operator>=(const scivector_slice& v1, const scivector_slice& v2) {
08403   return slsl_vv_geq<scivector_slice,scivector_slice,cinterval>(v1,v2);
08404 }
08405 
08407 
08410 inline bool operator>=(const sivector_slice& v1, const scivector_slice& v2) {
08411   return slsl_vv_geq<sivector_slice,scivector_slice,cinterval>(v1,v2);
08412 }
08413 
08415 
08418 inline bool operator>=(const scivector_slice& v1, const srvector& v2) {
08419   return slsp_vv_geq<scivector_slice,srvector,cinterval>(v1,v2);
08420 }
08421 
08423 
08426 inline bool operator>=(const scivector_slice& v1, const scvector& v2) {
08427   return slsp_vv_geq<scivector_slice,scvector,cinterval>(v1,v2);
08428 }
08429 
08431 
08434 inline bool operator>=(const scivector_slice& v1, const sivector& v2) {
08435   return slsp_vv_geq<scivector_slice,sivector,cinterval>(v1,v2);
08436 }
08437 
08439 
08442 inline bool operator>=(const scivector_slice& v1, const scivector& v2) {
08443   return slsp_vv_geq<scivector_slice,scivector,cinterval>(v1,v2);
08444 }
08445 
08447 
08450 inline bool operator>=(const sivector_slice& v1, const scivector& v2) {
08451   return slsp_vv_geq<sivector_slice,scivector,cinterval>(v1,v2);
08452 }
08453 
08455 
08458 inline bool operator>=(const scivector& v1, const srvector_slice& v2) {
08459   return spsl_vv_geq<scivector,srvector_slice,cinterval>(v1,v2);
08460 }
08461 
08463 
08466 inline bool operator>=(const scivector& v1, const scvector_slice& v2) {
08467   return spsl_vv_geq<scivector,scvector_slice,cinterval>(v1,v2);
08468 }
08469 
08471 
08474 inline bool operator>=(const scivector& v1, const sivector_slice& v2) {
08475   return spsl_vv_geq<scivector,sivector_slice,cinterval>(v1,v2);
08476 }
08477 
08479 
08482 inline bool operator>=(const scivector& v1, const scivector_slice& v2) {
08483   return spsl_vv_geq<scivector,scivector_slice,cinterval>(v1,v2);
08484 }
08485 
08487 
08490 inline bool operator>=(const sivector& v1, const scivector_slice& v2) {
08491   return spsl_vv_geq<sivector,scivector_slice,cinterval>(v1,v2);
08492 }
08493 
08495 
08498 inline bool operator>=(const scivector_slice& v1, const rvector& v2) {
08499   return slf_vv_geq<scivector_slice,rvector,cinterval>(v1,v2);
08500 }
08501 
08503 
08506 inline bool operator>=(const scivector_slice& v1, const cvector& v2) {
08507   return slf_vv_geq<scivector_slice,cvector,cinterval>(v1,v2);
08508 }
08509 
08511 
08514 inline bool operator>=(const scivector_slice& v1, const ivector& v2) {
08515   return slf_vv_geq<scivector_slice,ivector,cinterval>(v1,v2);
08516 }
08517 
08519 
08522 inline bool operator>=(const scivector_slice& v1, const civector& v2) {
08523   return slf_vv_geq<scivector_slice,civector,cinterval>(v1,v2);
08524 }
08525 
08527 
08530 inline bool operator>=(const sivector_slice& v1, const civector& v2) {
08531   return slf_vv_geq<sivector_slice,civector,cinterval>(v1,v2);
08532 }
08533 
08535 
08538 inline bool operator>=(const civector& v1, const srvector_slice& v2) {
08539   return fsl_vv_geq<civector,srvector_slice,cinterval>(v1,v2);
08540 }
08541 
08543 
08546 inline bool operator>=(const civector& v1, const scvector_slice& v2) {
08547   return fsl_vv_geq<civector,scvector_slice,cinterval>(v1,v2);
08548 }
08549 
08551 
08554 inline bool operator>=(const civector& v1, const sivector_slice& v2) {
08555   return fsl_vv_geq<civector,sivector_slice,cinterval>(v1,v2);
08556 }
08557 
08559 
08562 inline bool operator>=(const civector& v1, const scivector_slice& v2) {
08563   return fsl_vv_geq<civector,scivector_slice,cinterval>(v1,v2);
08564 }
08565 
08567 
08570 inline bool operator>=(const ivector& v1, const scivector_slice& v2) {
08571   return fsl_vv_geq<ivector,scivector_slice,cinterval>(v1,v2);
08572 }
08573 
08575 
08578 inline bool operator>=(const scivector_slice& v1, const rvector_slice& v2) {
08579   return slf_vv_geq<scivector_slice,rvector_slice,cinterval>(v1,v2);
08580 }
08581 
08583 
08586 inline bool operator>=(const scivector_slice& v1, const ivector_slice& v2) {
08587   return slf_vv_geq<scivector_slice,ivector_slice,cinterval>(v1,v2);
08588 }
08589 
08591 
08594 inline bool operator>=(const scivector_slice& v1, const cvector_slice& v2) {
08595   return slf_vv_geq<scivector_slice,cvector_slice,cinterval>(v1,v2);
08596 }
08597 
08599 
08602 inline bool operator>=(const scivector_slice& v1, const civector_slice& v2) {
08603   return slf_vv_geq<scivector_slice,civector_slice,cinterval>(v1,v2);
08604 }
08605 
08607 
08610 inline bool operator>=(const sivector_slice& v1, const civector_slice& v2) {
08611   return slf_vv_geq<sivector_slice,civector_slice,cinterval>(v1,v2);
08612 }
08613 
08615 
08618 inline bool operator>=(const civector_slice& v1, const srvector_slice& v2) {
08619   return fsl_vv_geq<civector_slice,srvector_slice,cinterval>(v1,v2);
08620 }
08621 
08623 
08626 inline bool operator>=(const civector_slice& v1, const scvector_slice& v2) {
08627   return fsl_vv_geq<civector_slice,scvector_slice,cinterval>(v1,v2);
08628 }
08629 
08631 
08634 inline bool operator>=(const civector_slice& v1, const sivector_slice& v2) {
08635   return fsl_vv_geq<civector_slice,sivector_slice,cinterval>(v1,v2);
08636 }
08637 
08639 
08642 inline bool operator>=(const civector_slice& v1, const scivector_slice& v2) {
08643   return fsl_vv_geq<civector_slice,scivector_slice,cinterval>(v1,v2);
08644 }
08645 
08647 
08650 inline bool operator>=(const ivector_slice& v1, const scivector_slice& v2) {
08651   return fsl_vv_geq<ivector_slice,scivector_slice,cinterval>(v1,v2);
08652 }
08653 
08655 
08660 inline std::ostream& operator<<(std::ostream& os, const scivector_slice& v) {
08661   return sl_v_output<scivector_slice,cinterval>(os,v);
08662 }
08663 
08665 
08670 inline std::istream& operator>>(std::istream& is, scivector_slice& v) {
08671   return sl_v_input<scivector_slice,cinterval>(is,v);
08672 }
08673 
08675 
08678 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const rvector& v2) {
08679   slf_vv_accu<cidotprecision,scivector_slice,rvector,sparse_cidot>(dot,v1,v2);
08680 }
08681 
08683 
08686 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const cvector& v2) {
08687   slf_vv_accu<cidotprecision,scivector_slice,cvector,sparse_cidot>(dot,v1,v2);
08688 }
08689 
08691 
08694 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const ivector& v2) {
08695   slf_vv_accu<cidotprecision,scivector_slice,ivector,sparse_cidot>(dot,v1,v2);
08696 }
08697 
08699 
08702 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const civector& v2) {
08703   slf_vv_accu<cidotprecision,scivector_slice,civector,sparse_cidot>(dot,v1,v2);
08704 }
08705 
08707 
08710 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const civector& v2) {
08711   slf_vv_accu<cidotprecision,srvector_slice,civector,sparse_cidot>(dot,v1,v2);
08712 }
08713 
08715 
08718 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const civector& v2) {
08719   slf_vv_accu<cidotprecision,sivector_slice,civector,sparse_cidot>(dot,v1,v2);
08720 }
08721 
08723 
08726 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const civector& v2) {
08727   slf_vv_accu<cidotprecision,scvector_slice,civector,sparse_cidot>(dot,v1,v2);
08728 }
08729 
08731 
08734 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const ivector& v2) {
08735   slf_vv_accu<cidotprecision,scvector_slice,ivector,sparse_cidot>(dot,v1,v2);
08736 }
08737 
08739 
08742 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const cvector& v2) {
08743   slf_vv_accu<cidotprecision,sivector_slice,cvector,sparse_cidot>(dot,v1,v2);
08744 }
08745 
08747 
08750 inline void accumulate(cidotprecision& dot, const civector& v1, const srvector_slice& v2) {
08751   fsl_vv_accu<cidotprecision,civector,srvector_slice,sparse_cidot>(dot,v1,v2);
08752 }
08753 
08755 
08758 inline void accumulate(cidotprecision& dot, const civector& v1, const scvector_slice& v2) {
08759   fsl_vv_accu<cidotprecision,civector,scvector_slice,sparse_cidot>(dot,v1,v2);
08760 }
08761 
08763 
08766 inline void accumulate(cidotprecision& dot, const civector& v1, const sivector_slice& v2) {
08767   fsl_vv_accu<cidotprecision,civector,sivector_slice,sparse_cidot>(dot,v1,v2);
08768 }
08769 
08771 
08774 inline void accumulate(cidotprecision& dot, const civector& v1, const scivector_slice& v2) {
08775   fsl_vv_accu<cidotprecision,civector,scivector_slice,sparse_cidot>(dot,v1,v2);
08776 }
08777 
08779 
08782 inline void accumulate(cidotprecision& dot, const rvector& v1, const scivector_slice& v2) {
08783   fsl_vv_accu<cidotprecision,rvector,scivector_slice,sparse_cidot>(dot,v1,v2);
08784 }
08785 
08787 
08790 inline void accumulate(cidotprecision& dot, const cvector& v1, const scivector_slice& v2) {
08791   fsl_vv_accu<cidotprecision,cvector,scivector_slice,sparse_cidot>(dot,v1,v2);
08792 }
08793 
08795 
08798 inline void accumulate(cidotprecision& dot, const ivector& v1, const scivector_slice& v2) {
08799   fsl_vv_accu<cidotprecision,ivector,scivector_slice,sparse_cidot>(dot,v1,v2);
08800 }
08801 
08803 
08806 inline void accumulate(cidotprecision& dot, const cvector& v1, const sivector_slice& v2) {
08807   fsl_vv_accu<cidotprecision,cvector,sivector_slice,sparse_cidot>(dot,v1,v2);
08808 }
08809 
08811 
08814 inline void accumulate(cidotprecision& dot, const ivector& v1, const scvector_slice& v2) {
08815   fsl_vv_accu<cidotprecision,ivector,scvector_slice,sparse_cidot>(dot,v1,v2);
08816 }
08817 
08819 
08822 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const rvector_slice& v2) {
08823   slf_vv_accu<cidotprecision,scivector_slice,rvector_slice,sparse_cidot>(dot,v1,v2);
08824 }
08825 
08827 
08830 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const ivector_slice& v2) {
08831   slf_vv_accu<cidotprecision,scivector_slice,ivector_slice,sparse_cidot>(dot,v1,v2);
08832 }
08833 
08835 
08838 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const cvector_slice& v2) {
08839   slf_vv_accu<cidotprecision,scivector_slice,cvector_slice,sparse_cidot>(dot,v1,v2);
08840 }
08841 
08843 
08846 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const civector_slice& v2) {
08847   slf_vv_accu<cidotprecision,scivector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
08848 }
08849 
08851 
08854 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const civector_slice& v2) {
08855   slf_vv_accu<cidotprecision,srvector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
08856 }
08857 
08859 
08862 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const civector_slice& v2) {
08863   slf_vv_accu<cidotprecision,scvector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
08864 }
08865 
08867 
08870 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const civector_slice& v2) {
08871   slf_vv_accu<cidotprecision,sivector_slice,civector_slice,sparse_cidot>(dot,v1,v2);
08872 }
08873 
08875 
08878 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const ivector_slice& v2) {
08879   slf_vv_accu<cidotprecision,scvector_slice,ivector_slice,sparse_cidot>(dot,v1,v2);
08880 }
08881 
08883 
08886 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const cvector_slice& v2) {
08887   slf_vv_accu<cidotprecision,sivector_slice,cvector_slice,sparse_cidot>(dot,v1,v2);
08888 }
08889 
08891 
08894 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const srvector_slice& v2) {
08895   fsl_vv_accu<cidotprecision,civector_slice,srvector_slice,sparse_cidot>(dot,v1,v2);
08896 }
08897 
08899 
08902 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scvector_slice& v2) {
08903   fsl_vv_accu<cidotprecision,civector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
08904 }
08905 
08907 
08910 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const sivector_slice& v2) {
08911   fsl_vv_accu<cidotprecision,civector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
08912 }
08913 
08915 
08918 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scivector_slice& v2) {
08919   fsl_vv_accu<cidotprecision,civector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
08920 }
08921 
08923 
08926 inline void accumulate(cidotprecision& dot, const rvector_slice& v1, const scivector_slice& v2) {
08927   fsl_vv_accu<cidotprecision,rvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
08928 }
08929 
08931 
08934 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scivector_slice& v2) {
08935   fsl_vv_accu<cidotprecision,ivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
08936 }
08937 
08939 
08942 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const scivector_slice& v2) {
08943   fsl_vv_accu<cidotprecision,cvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
08944 }
08945 
08947 
08950 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const sivector_slice& v2) {
08951   fsl_vv_accu<cidotprecision,cvector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
08952 }
08953 
08955 
08958 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scvector_slice& v2) {
08959   fsl_vv_accu<cidotprecision,ivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
08960 }
08961 
08963 
08966 inline void accumulate(cidotprecision& dot, const scivector& v1, const srvector_slice& v2) {
08967   spsl_vv_accu<cidotprecision,scivector,srvector_slice,sparse_cidot>(dot,v1,v2);
08968 }
08969 
08971 
08974 inline void accumulate(cidotprecision& dot, const scivector& v1, const scvector_slice& v2) {
08975   spsl_vv_accu<cidotprecision,scivector,scvector_slice,sparse_cidot>(dot,v1,v2);
08976 }
08977 
08979 
08982 inline void accumulate(cidotprecision& dot, const scivector& v1, const sivector_slice& v2) {
08983   spsl_vv_accu<cidotprecision,scivector,sivector_slice,sparse_cidot>(dot,v1,v2);
08984 }
08985 
08987 
08990 inline void accumulate(cidotprecision& dot, const scivector& v1, const scivector_slice& v2) {
08991   spsl_vv_accu<cidotprecision,scivector,scivector_slice,sparse_cidot>(dot,v1,v2);
08992 }
08993 
08995 
08998 inline void accumulate(cidotprecision& dot, const srvector& v1, const scivector_slice& v2) {
08999   spsl_vv_accu<cidotprecision,srvector,scivector_slice,sparse_cidot>(dot,v1,v2);
09000 }
09001 
09003 
09006 inline void accumulate(cidotprecision& dot, const scvector& v1, const scivector_slice& v2) {
09007   spsl_vv_accu<cidotprecision,scvector,scivector_slice,sparse_cidot>(dot,v1,v2);
09008 }
09009 
09011 
09014 inline void accumulate(cidotprecision& dot, const sivector& v1, const scivector_slice& v2) {
09015   spsl_vv_accu<cidotprecision,sivector,scivector_slice,sparse_cidot>(dot,v1,v2);
09016 }
09017 
09019 
09022 inline void accumulate(cidotprecision& dot, const scvector& v1, const sivector_slice& v2) {
09023   spsl_vv_accu<cidotprecision,scvector,sivector_slice,sparse_cidot>(dot,v1,v2);
09024 }
09025 
09027 
09030 inline void accumulate(cidotprecision& dot, const sivector& v1, const scvector_slice& v2) {
09031   spsl_vv_accu<cidotprecision,sivector,scvector_slice,sparse_cidot>(dot,v1,v2);
09032 }
09033 
09035 
09038 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const srvector& v2) {
09039   slsp_vv_accu<cidotprecision,scivector_slice,srvector,sparse_cidot>(dot,v1,v2);
09040 }
09041 
09043 
09046 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scvector& v2) {
09047   slsp_vv_accu<cidotprecision,scivector_slice,scvector,sparse_cidot>(dot,v1,v2);
09048 }
09049 
09051 
09054 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const sivector& v2) {
09055   slsp_vv_accu<cidotprecision,scivector_slice,sivector,sparse_cidot>(dot,v1,v2);
09056 }
09057 
09059 
09062 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scivector& v2) {
09063   slsp_vv_accu<cidotprecision,scivector_slice,scivector,sparse_cidot>(dot,v1,v2);
09064 }
09065 
09067 
09070 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const scivector& v2) {
09071   slsp_vv_accu<cidotprecision,srvector_slice,scivector,sparse_cidot>(dot,v1,v2);
09072 }
09073 
09075 
09078 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scivector& v2) {
09079   slsp_vv_accu<cidotprecision,sivector_slice,scivector,sparse_cidot>(dot,v1,v2);
09080 }
09081 
09083 
09086 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const scivector& v2) {
09087   slsp_vv_accu<cidotprecision,scvector_slice,scivector,sparse_cidot>(dot,v1,v2);
09088 }
09089 
09091 
09094 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const sivector& v2) {
09095   slsp_vv_accu<cidotprecision,scvector_slice,sivector,sparse_cidot>(dot,v1,v2);
09096 }
09097 
09099 
09102 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scvector& v2) {
09103   slsp_vv_accu<cidotprecision,sivector_slice,scvector,sparse_cidot>(dot,v1,v2);
09104 }
09105 
09107 
09110 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const srvector_slice& v2) {
09111   slsl_vv_accu<cidotprecision,scivector_slice,srvector_slice,sparse_cidot>(dot,v1,v2);
09112 }
09113 
09115 
09118 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scvector_slice& v2) {
09119   slsl_vv_accu<cidotprecision,scivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
09120 }
09121 
09123 
09126 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const sivector_slice& v2) {
09127   slsl_vv_accu<cidotprecision,scivector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
09128 }
09129 
09131 
09134 inline void accumulate(cidotprecision& dot, const scivector_slice& v1, const scivector_slice& v2) {
09135   slsl_vv_accu<cidotprecision,scivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
09136 }
09137 
09139 
09142 inline void accumulate(cidotprecision& dot, const srvector_slice& v1, const scivector_slice& v2) {
09143   slsl_vv_accu<cidotprecision,srvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
09144 }
09145 
09147 
09150 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const scivector_slice& v2) {
09151   slsl_vv_accu<cidotprecision,scvector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
09152 }
09153 
09155 
09158 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scivector_slice& v2) {
09159   slsl_vv_accu<cidotprecision,sivector_slice,scivector_slice,sparse_cidot>(dot,v1,v2);
09160 }
09161 
09163 
09166 inline void accumulate(cidotprecision& dot, const sivector_slice& v1, const scvector_slice& v2) {
09167   slsl_vv_accu<cidotprecision,sivector_slice,scvector_slice,sparse_cidot>(dot,v1,v2);
09168 }
09169 
09171 
09174 inline void accumulate(cidotprecision& dot, const scvector_slice& v1, const sivector_slice& v2) {
09175   slsl_vv_accu<cidotprecision,scvector_slice,sivector_slice,sparse_cidot>(dot,v1,v2);
09176 }
09177 
09179 
09182 inline void accumulate(cidotprecision& dot, const scivector& v1, const cvector& v2) {
09183   spf_vv_accu<cidotprecision,scivector,cvector,sparse_cidot>(dot,v1,v2);
09184 }
09185 
09187 
09190 inline void accumulate(cidotprecision& dot, const scivector& v1, const rvector& v2) {
09191   spf_vv_accu<cidotprecision,scivector,rvector,sparse_cidot>(dot,v1,v2);
09192 }
09193 
09195 
09198 inline void accumulate(cidotprecision& dot, const scivector& v1, const ivector& v2) {
09199   spf_vv_accu<cidotprecision,scivector,ivector,sparse_cidot>(dot,v1,v2);
09200 }
09201 
09203 
09206 inline void accumulate(cidotprecision& dot, const scivector& v1, const civector& v2) {
09207   spf_vv_accu<cidotprecision,scivector,civector,sparse_cidot>(dot,v1,v2);
09208 }
09209 
09211 
09214 inline void accumulate(cidotprecision& dot, const scvector& v1, const civector& v2) {
09215   spf_vv_accu<cidotprecision,scvector,civector,sparse_cidot>(dot,v1,v2);
09216 }
09217 
09219 
09222 inline void accumulate(cidotprecision& dot, const srvector& v1, const civector& v2) {
09223   spf_vv_accu<cidotprecision,srvector,civector,sparse_cidot>(dot,v1,v2);
09224 }
09225 
09227 
09230 inline void accumulate(cidotprecision& dot, const sivector& v1, const civector& v2) {
09231   spf_vv_accu<cidotprecision,sivector,civector,sparse_cidot>(dot,v1,v2);
09232 }
09233 
09235 
09238 inline void accumulate(cidotprecision& dot, const scvector& v1, const ivector& v2) {
09239   spf_vv_accu<cidotprecision,scvector,ivector,sparse_cidot>(dot,v1,v2);
09240 }
09241 
09243 
09246 inline void accumulate(cidotprecision& dot, const sivector& v1, const cvector& v2) {
09247   spf_vv_accu<cidotprecision,sivector,cvector,sparse_cidot>(dot,v1,v2);
09248 }
09249 
09251 
09254 inline void accumulate(cidotprecision& dot, const rvector& v1, const scivector& v2) {
09255   fsp_vv_accu<cidotprecision,rvector,scivector,sparse_cidot>(dot,v1,v2);
09256 }
09257 
09259 
09262 inline void accumulate(cidotprecision& dot, const cvector& v1, const scivector& v2) {
09263   fsp_vv_accu<cidotprecision,cvector,scivector,sparse_cidot>(dot,v1,v2);
09264 }
09265 
09267 
09270 inline void accumulate(cidotprecision& dot, const ivector& v1, const scivector& v2) {
09271   fsp_vv_accu<cidotprecision,ivector,scivector,sparse_cidot>(dot,v1,v2);
09272 }
09273 
09275 
09278 inline void accumulate(cidotprecision& dot, const civector& v1, const scivector& v2) {
09279   fsp_vv_accu<cidotprecision,civector,scivector,sparse_cidot>(dot,v1,v2);
09280 }
09281 
09283 
09286 inline void accumulate(cidotprecision& dot, const civector& v1, const srvector& v2) {
09287   fsp_vv_accu<cidotprecision,civector,srvector,sparse_cidot>(dot,v1,v2);
09288 }
09289 
09291 
09294 inline void accumulate(cidotprecision& dot, const civector& v1, const scvector& v2) {
09295   fsp_vv_accu<cidotprecision,civector,scvector,sparse_cidot>(dot,v1,v2);
09296 }
09297 
09299 
09302 inline void accumulate(cidotprecision& dot, const civector& v1, const sivector& v2) {
09303   fsp_vv_accu<cidotprecision,civector,sivector,sparse_cidot>(dot,v1,v2);
09304 }
09305 
09307 
09310 inline void accumulate(cidotprecision& dot, const ivector& v1, const scvector& v2) {
09311   fsp_vv_accu<cidotprecision,ivector,scvector,sparse_cidot>(dot,v1,v2);
09312 }
09313 
09315 
09318 inline void accumulate(cidotprecision& dot, const cvector& v1, const sivector& v2) {
09319   fsp_vv_accu<cidotprecision,cvector,sivector,sparse_cidot>(dot,v1,v2);
09320 }
09321 
09323 
09326 inline void accumulate(cidotprecision& dot, const scivector& v1, const cvector_slice& v2) {
09327   spf_vv_accu<cidotprecision,scivector,cvector_slice,sparse_cidot>(dot,v1,v2);
09328 }
09329 
09331 
09334 inline void accumulate(cidotprecision& dot, const scivector& v1, const rvector_slice& v2) {
09335   spf_vv_accu<cidotprecision,scivector,rvector_slice,sparse_cidot>(dot,v1,v2);
09336 }
09337 
09339 
09342 inline void accumulate(cidotprecision& dot, const scivector& v1, const ivector_slice& v2) {
09343   spf_vv_accu<cidotprecision,scivector,ivector_slice,sparse_cidot>(dot,v1,v2);
09344 }
09345 
09347 
09350 inline void accumulate(cidotprecision& dot, const scivector& v1, const civector_slice& v2) {
09351   spf_vv_accu<cidotprecision,scivector,civector_slice,sparse_cidot>(dot,v1,v2);
09352 }
09353 
09355 
09358 inline void accumulate(cidotprecision& dot, const scvector& v1, const civector_slice& v2) {
09359   spf_vv_accu<cidotprecision,scvector,civector_slice,sparse_cidot>(dot,v1,v2);
09360 }
09361 
09363 
09366 inline void accumulate(cidotprecision& dot, const srvector& v1, const civector_slice& v2) {
09367   spf_vv_accu<cidotprecision,srvector,civector_slice,sparse_cidot>(dot,v1,v2);
09368 }
09369 
09371 
09374 inline void accumulate(cidotprecision& dot, const sivector& v1, const civector_slice& v2) {
09375   spf_vv_accu<cidotprecision,sivector,civector_slice,sparse_cidot>(dot,v1,v2);
09376 }
09377 
09379 
09382 inline void accumulate(cidotprecision& dot, const scvector& v1, const ivector_slice& v2) {
09383   spf_vv_accu<cidotprecision,scvector,ivector_slice,sparse_cidot>(dot,v1,v2);
09384 }
09385 
09387 
09390 inline void accumulate(cidotprecision& dot, const sivector& v1, const cvector_slice& v2) {
09391   spf_vv_accu<cidotprecision,sivector,cvector_slice,sparse_cidot>(dot,v1,v2);
09392 }
09393 
09395 
09398 inline void accumulate(cidotprecision& dot, const rvector_slice& v1, const scivector& v2) {
09399   fsp_vv_accu<cidotprecision,rvector_slice,scivector,sparse_cidot>(dot,v1,v2);
09400 }
09401 
09403 
09406 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const scivector& v2) {
09407   fsp_vv_accu<cidotprecision,cvector_slice,scivector,sparse_cidot>(dot,v1,v2);
09408 }
09409 
09411 
09414 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scivector& v2) {
09415   fsp_vv_accu<cidotprecision,ivector_slice,scivector,sparse_cidot>(dot,v1,v2);
09416 }
09417 
09419 
09422 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scivector& v2) {
09423   fsp_vv_accu<cidotprecision,civector_slice,scivector,sparse_cidot>(dot,v1,v2);
09424 }
09425 
09427 
09430 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const srvector& v2) {
09431   fsp_vv_accu<cidotprecision,civector_slice,srvector,sparse_cidot>(dot,v1,v2);
09432 }
09433 
09435 
09438 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const scvector& v2) {
09439   fsp_vv_accu<cidotprecision,civector_slice,scvector,sparse_cidot>(dot,v1,v2);
09440 }
09441 
09443 
09446 inline void accumulate(cidotprecision& dot, const civector_slice& v1, const sivector& v2) {
09447   fsp_vv_accu<cidotprecision,civector_slice,sivector,sparse_cidot>(dot,v1,v2);
09448 }
09449 
09451 
09454 inline void accumulate(cidotprecision& dot, const ivector_slice& v1, const scvector& v2) {
09455   fsp_vv_accu<cidotprecision,ivector_slice,scvector,sparse_cidot>(dot,v1,v2);
09456 }
09457 
09459 
09462 inline void accumulate(cidotprecision& dot, const cvector_slice& v1, const sivector& v2) {
09463   fsp_vv_accu<cidotprecision,cvector_slice,sivector,sparse_cidot>(dot,v1,v2);
09464 }
09465 
09467 
09470 inline void accumulate(cidotprecision& dot, const scivector& v1, const srvector& v2) {
09471   spsp_vv_accu<cidotprecision,scivector,srvector,sparse_cidot>(dot,v1,v2);
09472 }
09473 
09475 
09478 inline void accumulate(cidotprecision& dot, const scivector& v1, const scvector& v2) {
09479   spsp_vv_accu<cidotprecision,scivector,scvector,sparse_cidot>(dot,v1,v2);
09480 }
09481 
09483 
09486 inline void accumulate(cidotprecision& dot, const scivector& v1, const sivector& v2) {
09487   spsp_vv_accu<cidotprecision,scivector,sivector,sparse_cidot>(dot,v1,v2);
09488 }
09489 
09491 
09494 inline void accumulate(cidotprecision& dot, const scivector& v1, const scivector& v2) {
09495   spsp_vv_accu<cidotprecision,scivector,scivector,sparse_cidot>(dot,v1,v2);
09496 }
09497 
09499 
09502 inline void accumulate(cidotprecision& dot, const srvector& v1, const scivector& v2) {
09503   spsp_vv_accu<cidotprecision,srvector,scivector,sparse_cidot>(dot,v1,v2);
09504 }
09505 
09507 
09510 inline void accumulate(cidotprecision& dot, const scvector& v1, const scivector& v2) {
09511   spsp_vv_accu<cidotprecision,scvector,scivector,sparse_cidot>(dot,v1,v2);
09512 }
09513 
09515 
09518 inline void accumulate(cidotprecision& dot, const sivector& v1, const scivector& v2) {
09519   spsp_vv_accu<cidotprecision,sivector,scivector,sparse_cidot>(dot,v1,v2);
09520 }
09521 
09523 
09526 inline void accumulate(cidotprecision& dot, const scvector& v1, const sivector& v2) {
09527   spsp_vv_accu<cidotprecision,scvector,sivector,sparse_cidot>(dot,v1,v2);
09528 }
09529 
09531 
09534 inline void accumulate(cidotprecision& dot, const sivector& v1, const scvector& v2) {
09535   spsp_vv_accu<cidotprecision,sivector,scvector,sparse_cidot>(dot,v1,v2);
09536 }
09537 
09538 } //namespace cxsc
09539 
09540 #include "sparsevector.inl"
09541 
09542 #endif