From d65b235ff380aeb29807b591bd709aceecd32284 Mon Sep 17 00:00:00 2001 From: astrojhgu Date: Fri, 22 Apr 2011 17:20:41 +0000 Subject: git-svn-id: file:///home/svn/opt_utilities@188 ed2142bd-67ad-457f-ba7c-d818d4011675 --- misc/optvec.hpp | 40 ++++++++++++++++++++-------------------- 1 file 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 operator+(const optvec& x1,const optvec& x2) { - optvec result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec 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 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 optvec& operator+=(optvec& x1,const optvec& 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 operator-(const optvec& x1,const optvec& x2) { - optvec result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec 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 optvec& operator-=(optvec& x1,const optvec& 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 operator*(const optvec& x1,const optvec& x2) { - optvec result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec 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 optvec& operator*=(optvec& x1,const optvec& 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 operator/(const optvec& x1,const optvec& x2) { - optvec result(x1.size()); - for(size_t i=0;i!=x1.size();++i) + optvec 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 optvec& operator/=(optvec& x1,const optvec& 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 bool operator<(const optvec& x1,const optvec& 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]) { -- cgit v1.2.2