diff --git a/src/dimension.h b/src/dimension.h
index a4f4b3245dacb3b577e1ff011cd7039f24bf6f97..0b2093d718a61c6ce850db1970412af3e2e462b9 100644
--- a/src/dimension.h
+++ b/src/dimension.h
@@ -275,15 +275,11 @@ __attribute__((always_inline)) INLINE static vector pow_dimension_vec(
 
 #if defined(HYDRO_DIMENSION_3D)
 
-  vector x3;
-  x3.v = vec_mul(vec_mul(x.v, x.v), x.v);
-  return x3;
+  return (vector)(vec_mul(vec_mul(x.v, x.v), x.v));
 
 #elif defined(HYDRO_DIMENSION_2D)
 
-  vector x2;
-  x2.v = vec_mul(x.v, x.v);
-  return x2;
+  return (vector)(vec_mul(x.v, x.v));
 
 #elif defined(HYDRO_DIMENSION_1D)
 
@@ -308,22 +304,16 @@ __attribute__((always_inline)) INLINE static vector pow_dimension_plus_one_vec(
 
 #if defined(HYDRO_DIMENSION_3D)
 
-  vector x2, x4;
-  x2.v = vec_mul(x.v, x.v);
-  x4.v = vec_mul(x2.v, x2.v);
-  return x4;
+  const vector x2 = (vector)(vec_mul(x.v, x.v));
+  return (vector)(vec_mul(x2.v, x2.v));
 
 #elif defined(HYDRO_DIMENSION_2D)
 
-  vector x3;
-  x3.v = vec_mul(vec_mul(x.v, x.v), x.v);
-  return x3;
+  return (vector)(vec_mul(x.v, vec_mul(x.v, x.v)));
 
 #elif defined(HYDRO_DIMENSION_1D)
-  
-  vector x2;
-  x2.v = vec_mul(x.v, x.v);
-  return x2;
+
+  return (vector)(vec_mul(x.v, x.v));
 
 #else