Diana
0.8.3
|
00001 #include <CapeOpen.hpp> 00002 00003 #ifndef DIANA_UTIL_HPP 00004 #define DIANA_UTIL_HPP 00005 namespace Diana{ 00006 namespace Util{ 00007 00008 using Common::Types::CapeArrayDouble; 00009 using Common::Types::CapeLong; 00010 using Common::Types::CapeDouble; 00017 inline void copyVec(double * dst, const Common::Types::CapeArrayDouble& src, 00018 CapeLong len=-1, CapeLong ssrc=0, CapeLong sdst=0) 00019 { 00020 if(len<0) 00021 len=src.size()-ssrc; 00022 Common::Types::CapeArrayDouble::const_iterator srci=src.begin()+ssrc, 00023 end=srci+len; 00024 dst+=sdst; 00025 for(;srci<end;srci++){ 00026 *dst=*srci;dst++; 00027 } 00028 } 00035 inline void copyVec(CapeArrayDouble& dst, const CapeArrayDouble& src, 00036 CapeLong len=-1, CapeLong ssrc=0, CapeLong sdst=0) 00037 { 00038 if(len<0) 00039 len=src.size()-ssrc; 00040 CapeArrayDouble::const_iterator srci=src.begin()+ssrc, 00041 end=srci+len; 00042 CapeArrayDouble::iterator dsti=dst.begin()+sdst; 00043 for(;srci<end;srci++){ 00044 *dsti=*srci;dsti++; 00045 } 00046 } 00047 00048 inline CapeDouble* vecPtr(CapeArrayDouble& v){ 00049 return static_cast<CapeDouble*>(&v[0]); 00050 } 00051 00052 } 00053 } 00054 #endif //DIANA_UTIL_HPP 00055