diff --git a/lib/math/Grid_math_arith_mul.h b/lib/math/Grid_math_arith_mul.h index 66c8b121..7b883cf4 100644 --- a/lib/math/Grid_math_arith_mul.h +++ b/lib/math/Grid_math_arith_mul.h @@ -9,12 +9,12 @@ namespace Grid { /////////////////////////////////////////////////////////////////////////////////////////////////// template -inline void mult(iScalar * __restrict__ ret,const iScalar * __restrict__ lhs,const iScalar * __restrict__ rhs){ +strong_inline void mult(iScalar * __restrict__ ret,const iScalar * __restrict__ lhs,const iScalar * __restrict__ rhs){ mult(&ret->_internal,&lhs->_internal,&rhs->_internal); } template -inline void mult(iMatrix * __restrict__ ret,const iMatrix * __restrict__ lhs,const iMatrix * __restrict__ rhs){ +strong_inline void mult(iMatrix * __restrict__ ret,const iMatrix * __restrict__ lhs,const iMatrix * __restrict__ rhs){ for(int c2=0;c2_internal[c1][c2],&lhs->_internal[c1][0],&rhs->_internal[0][c2]); @@ -25,7 +25,7 @@ inline void mult(iMatrix * __restrict__ ret,const iMatrix * _ return; } template -inline void mult(iMatrix * __restrict__ ret,const iMatrix * __restrict__ lhs,const iScalar * __restrict__ rhs){ +strong_inline void mult(iMatrix * __restrict__ ret,const iMatrix * __restrict__ lhs,const iScalar * __restrict__ rhs){ for(int c2=0;c2_internal[c1][c2],&lhs->_internal[c1][c2],&rhs->_internal); @@ -34,7 +34,7 @@ inline void mult(iMatrix * __restrict__ ret,const iMatrix * _ } template -inline void mult(iMatrix * __restrict__ ret,const iScalar * __restrict__ lhs,const iMatrix * __restrict__ rhs){ +strong_inline void mult(iMatrix * __restrict__ ret,const iScalar * __restrict__ lhs,const iMatrix * __restrict__ rhs){ for(int c2=0;c2_internal[c1][c2],&lhs->_internal,&rhs->_internal[c1][c2]); @@ -43,7 +43,7 @@ inline void mult(iMatrix * __restrict__ ret,const iScalar * _ } // Matrix left multiplies vector template -inline void mult(iVector * __restrict__ ret,const iMatrix * __restrict__ lhs,const iVector * __restrict__ rhs) +strong_inline void mult(iVector * __restrict__ ret,const iMatrix * __restrict__ lhs,const iVector * __restrict__ rhs) { for(int c1=0;c1_internal[c1],&lhs->_internal[c1][0],&rhs->_internal[0]); @@ -54,7 +54,7 @@ inline void mult(iVector * __restrict__ ret,const iMatrix * __ return; } template -inline void mult(iVector * __restrict__ ret, +strong_inline void mult(iVector * __restrict__ ret, const iScalar * __restrict__ lhs, const iVector * __restrict__ rhs){ for(int c1=0;c1 * __restrict__ ret, } } template -inline void mult(iVector * __restrict__ ret, +strong_inline void mult(iVector * __restrict__ ret, const iVector * __restrict__ rhs, const iScalar * __restrict__ lhs){ mult(ret,lhs,rhs); @@ -70,7 +70,7 @@ inline void mult(iVector * __restrict__ ret, -template inline +template strong_inline iVector operator * (const iMatrix& lhs,const iVector& rhs) { iVector ret; @@ -78,7 +78,7 @@ iVector operator * (const iMatrix& lhs,const iVector& return ret; } -template inline +template strong_inline iVector operator * (const iScalar& lhs,const iVector& rhs) { iVector ret; @@ -86,7 +86,7 @@ iVector operator * (const iScalar& lhs,const iVector& r return ret; } -template inline +template strong_inline iVector operator * (const iVector& lhs,const iScalar& rhs) { iVector ret; @@ -110,14 +110,14 @@ iVector operator * (const iVector& lhs,const iScalar& r // // We can special case scalar_type ?? template -inline auto operator * (const iScalar& lhs,const iScalar& rhs) -> iScalar +strong_inline auto operator * (const iScalar& lhs,const iScalar& rhs) -> iScalar { typedef iScalar ret_t; ret_t ret; mult(&ret,&lhs,&rhs); return ret; } -template inline +template strong_inline auto operator * (const iMatrix& lhs,const iMatrix& rhs) -> iMatrix { typedef decltype(lhs._internal[0][0]*rhs._internal[0][0]) ret_t; @@ -125,7 +125,7 @@ auto operator * (const iMatrix& lhs,const iMatrix& rhs) -> iMatrix inline +template strong_inline auto operator * (const iMatrix& lhs,const iScalar& rhs) -> iMatrix { typedef decltype(lhs._internal[0][0]*rhs._internal) ret_t; @@ -137,7 +137,7 @@ auto operator * (const iMatrix& lhs,const iScalar& rhs) -> iMatrix inline +template strong_inline auto operator * (const iScalar& lhs,const iMatrix& rhs) -> iMatrix { typedef decltype(lhs._internal*rhs._internal[0][0]) ret_t; @@ -148,7 +148,7 @@ auto operator * (const iScalar& lhs,const iMatrix& rhs) -> iMatrix inline +template strong_inline auto operator * (const iMatrix& lhs,const iVector& rhs) -> iVector { typedef decltype(lhs._internal[0][0]*rhs._internal[0]) ret_t; @@ -161,7 +161,7 @@ auto operator * (const iMatrix& lhs,const iVector& rhs) -> iVector inline +template strong_inline auto operator * (const iScalar& lhs,const iVector& rhs) -> iVector { typedef decltype(lhs._internal*rhs._internal[0]) ret_t; @@ -171,7 +171,7 @@ auto operator * (const iScalar& lhs,const iVector& rhs) -> iVector inline +template strong_inline auto operator * (const iVector& lhs,const iScalar& rhs) -> iVector { typedef decltype(lhs._internal[0]*rhs._internal) ret_t;