diff options
author | Eugene Zhulenev <ezhulenev@google.com> | 2019-10-29 11:25:24 -0700 |
---|---|---|
committer | Eugene Zhulenev <ezhulenev@google.com> | 2019-10-29 11:25:24 -0700 |
commit | e7ed4bd388be80db9cc5689e623fbdd9e5cfdf7b (patch) | |
tree | eeb905e8f418f9d7f5bbde7ebeced53111bc1c89 /Eigen/src/Core/util/Memory.h | |
parent | fbc0a9a3ec19bbe9106754ca4e4d3f382ce50530 (diff) |
Remove internal::smart_copy and replace with std::copy
Diffstat (limited to 'Eigen/src/Core/util/Memory.h')
-rw-r--r-- | Eigen/src/Core/util/Memory.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h index 1b12544d2..d0622d0b4 100644 --- a/Eigen/src/Core/util/Memory.h +++ b/Eigen/src/Core/util/Memory.h @@ -507,31 +507,6 @@ inline Index first_multiple(Index size, Index base) return ((size+base-1)/base)*base; } -// std::copy is much slower than memcpy, so let's introduce a smart_copy which -// use memcpy on trivial types, i.e., on types that does not require an initialization ctor. -template<typename T, bool UseMemcpy> struct smart_copy_helper; - -template<typename T> EIGEN_DEVICE_FUNC void smart_copy(const T* start, const T* end, T* target) -{ - smart_copy_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target); -} - -template<typename T> struct smart_copy_helper<T,true> { - EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T* target) - { - IntPtr size = IntPtr(end)-IntPtr(start); - if(size==0) return; - eigen_internal_assert(start!=0 && end!=0 && target!=0); - EIGEN_USING_STD(memcpy) - memcpy(target, start, size); - } -}; - -template<typename T> struct smart_copy_helper<T,false> { - EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T* target) - { std::copy(start, end, target); } -}; - // intelligent memmove. falls back to std::memmove for POD types, uses std::copy otherwise. template<typename T, bool UseMemmove> struct smart_memmove_helper; |