diff --git a/src/vector_power.h b/src/vector_power.h
index ffaa3b3f6cea69626462a9b5f26f94827c6af556..d2adf2cbfa719bc0631b91692f45b33038abdf19 100644
--- a/src/vector_power.h
+++ b/src/vector_power.h
@@ -46,7 +46,8 @@
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_000(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_000(
+    const double v[3]) {
 
   return 1.;
 }
@@ -60,7 +61,8 @@ __attribute__((always_inline)) INLINE static double X_000(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_100(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_100(
+    const double v[3]) {
 
   return v[0];
 }
@@ -70,7 +72,8 @@ __attribute__((always_inline)) INLINE static double X_100(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_010(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_010(
+    const double v[3]) {
 
   return v[1];
 }
@@ -80,7 +83,8 @@ __attribute__((always_inline)) INLINE static double X_010(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_001(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_001(
+    const double v[3]) {
 
   return v[2];
 }
@@ -94,7 +98,8 @@ __attribute__((always_inline)) INLINE static double X_001(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_200(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_200(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[0];
 }
@@ -104,7 +109,8 @@ __attribute__((always_inline)) INLINE static double X_200(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_020(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_020(
+    const double v[3]) {
 
   return 0.5 * v[1] * v[1];
 }
@@ -114,7 +120,8 @@ __attribute__((always_inline)) INLINE static double X_020(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_002(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_002(
+    const double v[3]) {
 
   return 0.5 * v[2] * v[2];
 }
@@ -124,7 +131,8 @@ __attribute__((always_inline)) INLINE static double X_002(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_110(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_110(
+    const double v[3]) {
 
   return v[0] * v[1];
 }
@@ -134,7 +142,8 @@ __attribute__((always_inline)) INLINE static double X_110(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_101(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_101(
+    const double v[3]) {
 
   return v[0] * v[2];
 }
@@ -144,7 +153,8 @@ __attribute__((always_inline)) INLINE static double X_101(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_011(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_011(
+    const double v[3]) {
 
   return v[1] * v[2];
 }
@@ -158,7 +168,8 @@ __attribute__((always_inline)) INLINE static double X_011(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_300(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_300(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[0] * v[0] * v[0];
 }
@@ -168,7 +179,8 @@ __attribute__((always_inline)) INLINE static double X_300(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_030(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_030(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[1] * v[1] * v[1];
 }
@@ -178,7 +190,8 @@ __attribute__((always_inline)) INLINE static double X_030(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_003(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_003(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[2] * v[2] * v[2];
 }
@@ -188,7 +201,8 @@ __attribute__((always_inline)) INLINE static double X_003(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_210(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_210(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[0] * v[1];
 }
@@ -198,7 +212,8 @@ __attribute__((always_inline)) INLINE static double X_210(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_201(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_201(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[0] * v[2];
 }
@@ -208,7 +223,8 @@ __attribute__((always_inline)) INLINE static double X_201(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_120(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_120(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[1] * v[1];
 }
@@ -218,7 +234,8 @@ __attribute__((always_inline)) INLINE static double X_120(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_021(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_021(
+    const double v[3]) {
 
   return 0.5 * v[1] * v[1] * v[2];
 }
@@ -228,7 +245,8 @@ __attribute__((always_inline)) INLINE static double X_021(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_102(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_102(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[2] * v[2];
 }
@@ -238,7 +256,8 @@ __attribute__((always_inline)) INLINE static double X_102(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_012(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_012(
+    const double v[3]) {
 
   return 0.5 * v[1] * v[2] * v[2];
 }
@@ -248,7 +267,8 @@ __attribute__((always_inline)) INLINE static double X_012(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_111(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_111(
+    const double v[3]) {
 
   return v[0] * v[1] * v[2];
 }
@@ -262,7 +282,8 @@ __attribute__((always_inline)) INLINE static double X_111(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_400(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_400(
+    const double v[3]) {
 
   const double vv = v[0] * v[0];
   return 0.041666666666666667 * vv * vv;
@@ -273,7 +294,8 @@ __attribute__((always_inline)) INLINE static double X_400(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_040(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_040(
+    const double v[3]) {
 
   const double vv = v[1] * v[1];
   return 0.041666666666666667 * vv * vv;
@@ -284,7 +306,8 @@ __attribute__((always_inline)) INLINE static double X_040(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_004(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_004(
+    const double v[3]) {
 
   const double vv = v[2] * v[2];
   return 0.041666666666666667 * vv * vv;
@@ -295,7 +318,8 @@ __attribute__((always_inline)) INLINE static double X_004(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_310(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_310(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[0] * v[0] * v[0] * v[1];
 }
@@ -305,7 +329,8 @@ __attribute__((always_inline)) INLINE static double X_310(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_301(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_301(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[0] * v[0] * v[0] * v[2];
 }
@@ -315,7 +340,8 @@ __attribute__((always_inline)) INLINE static double X_301(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_130(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_130(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[0] * v[1] * v[1] * v[1];
 }
@@ -325,7 +351,8 @@ __attribute__((always_inline)) INLINE static double X_130(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_031(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_031(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[1] * v[1] * v[1] * v[2];
 }
@@ -335,7 +362,8 @@ __attribute__((always_inline)) INLINE static double X_031(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_103(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_103(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[0] * v[2] * v[2] * v[2];
 }
@@ -345,7 +373,8 @@ __attribute__((always_inline)) INLINE static double X_103(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_013(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_013(
+    const double v[3]) {
 
   return 0.1666666666666667 * v[1] * v[2] * v[2] * v[2];
 }
@@ -355,7 +384,8 @@ __attribute__((always_inline)) INLINE static double X_013(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_220(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_220(
+    const double v[3]) {
 
   return 0.25 * v[0] * v[0] * v[1] * v[1];
 }
@@ -365,7 +395,8 @@ __attribute__((always_inline)) INLINE static double X_220(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_202(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_202(
+    const double v[3]) {
 
   return 0.25 * v[0] * v[0] * v[2] * v[2];
 }
@@ -375,7 +406,8 @@ __attribute__((always_inline)) INLINE static double X_202(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_022(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_022(
+    const double v[3]) {
 
   return 0.25 * v[1] * v[1] * v[2] * v[2];
 }
@@ -385,7 +417,8 @@ __attribute__((always_inline)) INLINE static double X_022(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_211(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_211(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[0] * v[1] * v[2];
 }
@@ -395,7 +428,8 @@ __attribute__((always_inline)) INLINE static double X_211(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_121(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_121(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[1] * v[1] * v[2];
 }
@@ -405,7 +439,8 @@ __attribute__((always_inline)) INLINE static double X_121(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_112(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_112(
+    const double v[3]) {
 
   return 0.5 * v[0] * v[1] * v[2] * v[2];
 }
@@ -422,7 +457,8 @@ __attribute__((always_inline)) INLINE static double X_112(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_005(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_005(
+    const double v[3]) {
 
   return 8.333333333333333e-03 * v[2] * v[2] * v[2] * v[2] * v[2];
 }
@@ -435,7 +471,8 @@ __attribute__((always_inline)) INLINE static double X_005(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_014(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_014(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[1] * v[2] * v[2] * v[2] * v[2];
 }
@@ -448,7 +485,8 @@ __attribute__((always_inline)) INLINE static double X_014(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_023(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_023(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[1] * v[1] * v[2] * v[2] * v[2];
 }
@@ -461,7 +499,8 @@ __attribute__((always_inline)) INLINE static double X_023(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_032(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_032(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[1] * v[1] * v[1] * v[2] * v[2];
 }
@@ -474,7 +513,8 @@ __attribute__((always_inline)) INLINE static double X_032(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_041(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_041(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[1] * v[1] * v[1] * v[1] * v[2];
 }
@@ -487,7 +527,8 @@ __attribute__((always_inline)) INLINE static double X_041(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_050(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_050(
+    const double v[3]) {
 
   return 8.333333333333333e-03 * v[1] * v[1] * v[1] * v[1] * v[1];
 }
@@ -500,7 +541,8 @@ __attribute__((always_inline)) INLINE static double X_050(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_104(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_104(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[0] * v[2] * v[2] * v[2] * v[2];
 }
@@ -513,7 +555,8 @@ __attribute__((always_inline)) INLINE static double X_104(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_113(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_113(
+    const double v[3]) {
 
   return 1.666666666666667e-01 * v[0] * v[1] * v[2] * v[2] * v[2];
 }
@@ -526,7 +569,8 @@ __attribute__((always_inline)) INLINE static double X_113(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_122(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_122(
+    const double v[3]) {
 
   return 2.500000000000000e-01 * v[0] * v[1] * v[1] * v[2] * v[2];
 }
@@ -539,7 +583,8 @@ __attribute__((always_inline)) INLINE static double X_122(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_131(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_131(
+    const double v[3]) {
 
   return 1.666666666666667e-01 * v[0] * v[1] * v[1] * v[1] * v[2];
 }
@@ -552,7 +597,8 @@ __attribute__((always_inline)) INLINE static double X_131(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_140(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_140(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[0] * v[1] * v[1] * v[1] * v[1];
 }
@@ -565,7 +611,8 @@ __attribute__((always_inline)) INLINE static double X_140(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_203(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_203(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[0] * v[0] * v[2] * v[2] * v[2];
 }
@@ -578,7 +625,8 @@ __attribute__((always_inline)) INLINE static double X_203(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_212(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_212(
+    const double v[3]) {
 
   return 2.500000000000000e-01 * v[0] * v[0] * v[1] * v[2] * v[2];
 }
@@ -591,7 +639,8 @@ __attribute__((always_inline)) INLINE static double X_212(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_221(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_221(
+    const double v[3]) {
 
   return 2.500000000000000e-01 * v[0] * v[0] * v[1] * v[1] * v[2];
 }
@@ -604,7 +653,8 @@ __attribute__((always_inline)) INLINE static double X_221(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_230(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_230(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[0] * v[0] * v[1] * v[1] * v[1];
 }
@@ -617,7 +667,8 @@ __attribute__((always_inline)) INLINE static double X_230(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_302(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_302(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[0] * v[0] * v[0] * v[2] * v[2];
 }
@@ -630,7 +681,8 @@ __attribute__((always_inline)) INLINE static double X_302(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_311(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_311(
+    const double v[3]) {
 
   return 1.666666666666667e-01 * v[0] * v[0] * v[0] * v[1] * v[2];
 }
@@ -643,7 +695,8 @@ __attribute__((always_inline)) INLINE static double X_311(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_320(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_320(
+    const double v[3]) {
 
   return 8.333333333333333e-02 * v[0] * v[0] * v[0] * v[1] * v[1];
 }
@@ -656,7 +709,8 @@ __attribute__((always_inline)) INLINE static double X_320(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_401(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_401(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[0] * v[0] * v[0] * v[0] * v[2];
 }
@@ -669,7 +723,8 @@ __attribute__((always_inline)) INLINE static double X_401(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_410(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_410(
+    const double v[3]) {
 
   return 4.166666666666666e-02 * v[0] * v[0] * v[0] * v[0] * v[1];
 }
@@ -682,7 +737,8 @@ __attribute__((always_inline)) INLINE static double X_410(const double v[3]) {
  *
  * @param v vector (\f$ v \f$).
  */
-__attribute__((always_inline)) INLINE static double X_500(const double v[3]) {
+__attribute__((always_inline, const)) INLINE static double X_500(
+    const double v[3]) {
 
   return 8.333333333333333e-03 * v[0] * v[0] * v[0] * v[0] * v[0];
 }
diff --git a/theory/Multipoles/generate_multipoles/vector_powers.py b/theory/Multipoles/generate_multipoles/vector_powers.py
index b86dba497afdd6e091bee524c9c800a5dc83a9c6..fbd747bedffdb9f1b2e5828574cbcd11a2e17f3d 100644
--- a/theory/Multipoles/generate_multipoles/vector_powers.py
+++ b/theory/Multipoles/generate_multipoles/vector_powers.py
@@ -41,7 +41,7 @@ for i in range(order+1):
                 print "*"
                 print "* @param v vector (\\f$ v \\f$)."
                 print "*/"
-                print "__attribute__((always_inline)) INLINE static double X_%d%d%d(const double v[3]) {"%(i,j,k)
+                print "__attribute__((always_inline, const)) INLINE static double X_%d%d%d(const double v[3]) {"%(i,j,k)
                 print ""
                 print "  return",
                 if fact != 1: