diff options
author | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-04-22 17:20:41 +0000 |
---|---|---|
committer | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-04-22 17:20:41 +0000 |
commit | d65b235ff380aeb29807b591bd709aceecd32284 (patch) | |
tree | 497d5407a7bb71ba6aec3004e1e14fc445a06d34 /misc | |
parent | 412f4f074e758b4889a41a32af571e6f6b0a3701 (diff) | |
download | opt-utilities-d65b235ff380aeb29807b591bd709aceecd32284.tar.bz2 |
git-svn-id: file:///home/svn/opt_utilities@188 ed2142bd-67ad-457f-ba7c-d818d4011675
Diffstat (limited to 'misc')
-rw-r--r-- | misc/optvec.hpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/misc/optvec.hpp b/misc/optvec.hpp index 790a721..e52e853 100644 --- a/misc/optvec.hpp +++ b/misc/optvec.hpp @@ -53,10 +53,10 @@ namespace opt_utilities optvec<T> operator+(const optvec<T>& x1,const optvec<T>& x2) { - optvec<T> result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec<T> result(min(x1.size(),x2.size())); + for(size_t i=0;i!=result.size();++i) { - result[i]=x1[i]+x2.at(i); + result[i]=x1[i]+x2[i]; } return result; } @@ -66,7 +66,7 @@ namespace opt_utilities { optvec<T> result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=result.size();++i) { result[i]=x1[i]+x2; } @@ -76,9 +76,9 @@ namespace opt_utilities template<typename T> optvec<T>& operator+=(optvec<T>& x1,const optvec<T>& x2) { - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=min(x1.size(),x2.size());++i) { - x1[i]+=x2.at(i); + x1[i]+=x2[i]; } return x1; } @@ -87,10 +87,10 @@ namespace opt_utilities optvec<T> operator-(const optvec<T>& x1,const optvec<T>& x2) { - optvec<T> result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec<T> result(min(x1.size(),x2.size())); + for(size_t i=0;i!=result.size();++i) { - result[i]=x1[i]-x2.at(i); + result[i]=x1[i]-x2[i]; } return result; } @@ -123,9 +123,9 @@ namespace opt_utilities template<typename T> optvec<T>& operator-=(optvec<T>& x1,const optvec<T>& x2) { - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=min(x1.size(),x2.size());++i) { - x1[i]-=x2.at(i); + x1[i]-=x2[i]; } return x1; } @@ -134,10 +134,10 @@ namespace opt_utilities optvec<T> operator*(const optvec<T>& x1,const optvec<T>& x2) { - optvec<T> result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec<T> result(min(x1.size(),x2.size())); + for(size_t i=0;i!=result.size();++i) { - result[i]=x1[i]*x2.at(i); + result[i]=x1[i]*x2[i]; } return result; } @@ -170,9 +170,9 @@ namespace opt_utilities template<typename T> optvec<T>& operator*=(optvec<T>& x1,const optvec<T>& x2) { - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=min(x1.size(),x2.size());++i) { - x1[i]*=x2.at(i); + x1[i]*=x2[i]; } return x1; } @@ -192,8 +192,8 @@ namespace opt_utilities optvec<T> operator/(const optvec<T>& x1,const optvec<T>& x2) { - optvec<T> result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec<T> result(min(x1.size(),x2.size())); + for(size_t i=0;i!=result.size();++i) { result[i]=x1[i]/x2.at(i); } @@ -227,7 +227,7 @@ namespace opt_utilities template<typename T> optvec<T>& operator/=(optvec<T>& x1,const optvec<T>& x2) { - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=min(x1.size(),x2.size());++i) { x1[i]/=x2.at(i); } @@ -258,7 +258,7 @@ namespace opt_utilities template<typename T> bool operator<(const optvec<T>& x1,const optvec<T>& x2) { - for(size_t i=0;i!=x1.size();++i) + for(size_t i=0;i!=min(x1.size(),x2.size());++i) { if(x1[i]!=x2[i]) { |