@@ -82,24 +82,24 @@ class Array : public CVecExpr<Array<Scalar_t,N>, Scalar_t> {
8282 alignas (Size*sizeof (Scalar)) Scalar x_[N];
8383
8484public:
85- #define ARRAY_BOILERPLATE \
86- /* !--- Access elements ---*/ \
87- FORCEINLINE Scalar& operator [] (size_t k) { return x_[k]; } \
88- FORCEINLINE const Scalar& operator [] (size_t k) const { return x_[k]; } \
89- /* !--- Constructors ---*/ \
90- FORCEINLINE Array () = default; \
91- FORCEINLINE Array (Scalar x) { bcast (x); } \
92- FORCEINLINE Array (std::initializer_list<Scalar> vals) { \
93- auto it = vals.begin (); FOREACH { x_[k] = *it; ++it; } \
94- } \
95- FORCEINLINE Array (Scalar x0, Scalar dx) { FOREACH x_[k] = x0 + k*dx; } \
96- FORCEINLINE Array (const Scalar* ptr) { load (ptr); } \
97- template <class T > \
98- FORCEINLINE Array (const Scalar* beg, const T& off) { gather (beg,off); } \
99- /* !--- Reduction operations ---*/ \
100- FORCEINLINE Scalar sum () const { Scalar s (0 ); FOREACH s+=x_[k]; return s; } \
101- FORCEINLINE Scalar dot (const Array& other) const { \
102- Scalar s (0 ); FOREACH s += x_[k] * other[k]; return s; \
85+ #define ARRAY_BOILERPLATE \
86+ /* !--- Access elements ---*/ \
87+ FORCEINLINE Scalar& operator [] (size_t k) { return x_[k]; } \
88+ FORCEINLINE const Scalar& operator [] (size_t k) const { return x_[k]; } \
89+ /* !--- Constructors ---*/ \
90+ FORCEINLINE Array () = default; \
91+ FORCEINLINE Array (Scalar x) { bcast (x); } \
92+ FORCEINLINE Array (std::initializer_list<Scalar> vals) { \
93+ auto it = vals.begin (); FOREACH { x_[k] = *it; ++it; } \
94+ } \
95+ FORCEINLINE Array (Scalar x0, Scalar dx) { FOREACH x_[k] = x0 + k*dx; } \
96+ FORCEINLINE Array (const Scalar* ptr) { load (ptr); } \
97+ template <class T > \
98+ FORCEINLINE Array (const Scalar* beg, const T& off) { gather (beg,off); } \
99+ /* !--- Reduction operations ---*/ \
100+ FORCEINLINE Scalar sum () const { Scalar s (0 ); FOREACH { s+=x_[k]; } return s; } \
101+ FORCEINLINE Scalar dot (const Array& other) const { \
102+ Scalar s (0 ); FOREACH { s += x_[k] * other[k]; } return s; \
103103 }
104104
105105#if defined(CODI_REVERSE_TYPE) || defined(CODI_FORWARD_TYPE)
@@ -132,11 +132,11 @@ class Array : public CVecExpr<Array<Scalar_t,N>, Scalar_t> {
132132
133133 /* --- Compound assignment operators. ---*/
134134
135- #define MAKE_COMPOUND (OP ) \
136- FORCEINLINE Array& operator OP (Scalar x) { FOREACH x_[k] OP x; return *this ; } \
137- template <class U > \
138- FORCEINLINE Array& operator OP (const CVecExpr<U,Scalar>& expr) { \
139- FOREACH x_[k] OP expr.derived ()[k]; return *this ; \
135+ #define MAKE_COMPOUND (OP ) \
136+ FORCEINLINE Array& operator OP (Scalar x) { FOREACH { x_[k] OP x; } return *this ; } \
137+ template <class U > \
138+ FORCEINLINE Array& operator OP (const CVecExpr<U,Scalar>& expr) { \
139+ FOREACH { x_[k] OP expr.derived ()[k]; } return *this ; \
140140 }
141141 MAKE_COMPOUND (=)
142142 MAKE_COMPOUND (+=)
0 commit comments