scivector.hpp

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

Generated on Thu Jun 9 11:22:01 2011 for C-XSC - A C++ Class Library for Extended Scientific Computing by  doxygen 1.4.6