diff --git a/src/algebra/TinyMatrix.hpp b/src/algebra/TinyMatrix.hpp index 2eced15cf5686d972554da3784ff295bcc3eadf8..eda3b5f19c3f7950bda6acce50a3e39b7c9f2cec 100644 --- a/src/algebra/TinyMatrix.hpp +++ b/src/algebra/TinyMatrix.hpp @@ -46,11 +46,8 @@ public: KOKKOS_INLINE_FUNCTION constexpr friend TinyMatrix operator*(const T& t, const TinyMatrix& A) { - TinyMatrix tA; - for (size_t i=0; i<N*N; ++i) { - tA.m_values[i] = t * A.m_values[i]; - } - return std::move(tA); + TinyMatrix B = A; + return std::move(B *= t); } KOKKOS_INLINE_FUNCTION @@ -242,7 +239,10 @@ public: } KOKKOS_INLINE_FUNCTION - constexpr TinyMatrix() noexcept = default; + constexpr TinyMatrix() noexcept + { + ; + } KOKKOS_INLINE_FUNCTION constexpr TinyMatrix(const ZeroType& z) noexcept @@ -273,7 +273,7 @@ public: } KOKKOS_INLINE_FUNCTION - constexpr TinyMatrix(TinyMatrix&& A) noexcept = default; + TinyMatrix(TinyMatrix&& A) noexcept = default; KOKKOS_INLINE_FUNCTION ~TinyMatrix()=default; diff --git a/src/algebra/TinyVector.hpp b/src/algebra/TinyVector.hpp index 826ba981939050091d70cdf0d63fdf7fcaa2d471..c783bb7968696c120f96ef82014a5443639871d9 100644 --- a/src/algebra/TinyVector.hpp +++ b/src/algebra/TinyVector.hpp @@ -78,11 +78,8 @@ class TinyVector KOKKOS_INLINE_FUNCTION constexpr friend TinyVector operator*(const T& t, const TinyVector& v) { - TinyVector tv; - for (size_t i=0; i<N; ++i) { - tv.m_values[i] = t * v.m_values[i]; - } - return std::move(tv); + TinyVector w = v; + return std::move(w*=t); } KOKKOS_INLINE_FUNCTION @@ -230,10 +227,7 @@ class TinyVector constexpr TinyVector(TinyVector&& v) noexcept = default; KOKKOS_INLINE_FUNCTION - ~TinyVector() noexcept - { - ; - } + ~TinyVector() noexcept = default; }; template <size_t N, typename T>