1212namespace A2D {
1313
1414template <typename T, int N, int M>
15- A2D_FUNCTION void MatSum (const Mat<T, N, M> & A, const Mat<T, N, M> & B,
16- Mat<T, N, M> & C) {
15+ A2D_FUNCTION void MatSum (const Mat<T, N, M>& A, const Mat<T, N, M>& B,
16+ Mat<T, N, M>& C) {
1717 VecSumCore<T, N * M>(get_data (A), get_data (B), get_data (C));
1818}
1919
2020template <typename T, int N, int M>
21- A2D_FUNCTION void MatSum (const T alpha, const Mat<T, N, M> & A, const T beta,
22- const Mat<T, N, M> & B, Mat<T, N, M> & C) {
21+ A2D_FUNCTION void MatSum (const T alpha, const Mat<T, N, M>& A, const T beta,
22+ const Mat<T, N, M>& B, Mat<T, N, M>& C) {
2323 VecSumCore<T, N * M>(alpha, get_data (A), beta, get_data (B), get_data (C));
2424}
2525
2626template <typename T, int N>
27- A2D_FUNCTION void MatSum (const SymMat<T, N> & A, const SymMat<T, N> & B,
28- SymMat<T, N> & C) {
27+ A2D_FUNCTION void MatSum (const SymMat<T, N>& A, const SymMat<T, N>& B,
28+ SymMat<T, N>& C) {
2929 VecSumCore<T, (N * (N + 1 )) / 2 >(get_data (A), get_data (B), get_data (C));
3030}
3131
3232template <typename T, int N>
33- A2D_FUNCTION void MatSum (const T alpha, const SymMat<T, N> & A, const T beta,
34- const SymMat<T, N> & B, SymMat<T, N> & C) {
33+ A2D_FUNCTION void MatSum (const T alpha, const SymMat<T, N>& A, const T beta,
34+ const SymMat<T, N>& B, SymMat<T, N>& C) {
3535 VecSumCore<T, (N * (N + 1 )) / 2 >(alpha, get_data (A), beta, get_data (B),
3636 get_data (C));
3737}
@@ -61,7 +61,7 @@ class MatSumExpr {
6161 " Matrix sizes must agree" );
6262
6363 A2D_FUNCTION
64- MatSumExpr (Atype & A, Btype & B, Ctype & C) : A(A), B(B), C(C) {}
64+ MatSumExpr (Atype& A, Btype& B, Ctype& C) : A(A), B(B), C(C) {}
6565
6666 A2D_FUNCTION void eval () {
6767 VecSumCore<T, size>(get_data (A), get_data (B), get_data (C));
@@ -112,39 +112,39 @@ class MatSumExpr {
112112 }
113113 }
114114
115- Atype & A;
116- Btype & B;
117- Ctype & C;
115+ Atype& A;
116+ Btype& B;
117+ Ctype& C;
118118};
119119
120120// Full active variants
121121template <class Atype , class Btype , class Ctype >
122- A2D_FUNCTION auto MatSum (ADObj<Atype> & A, ADObj<Btype> & B, ADObj<Ctype> & C) {
122+ A2D_FUNCTION auto MatSum (ADObj<Atype>& A, ADObj<Btype>& B, ADObj<Ctype>& C) {
123123 return MatSumExpr<ADObj<Atype>, ADObj<Btype>, ADObj<Ctype>>(A, B, C);
124124}
125125
126126template <class Atype , class Btype , class Ctype >
127- A2D_FUNCTION auto MatSum (A2DObj<Atype> & A, A2DObj<Btype> & B, A2DObj<Ctype> & C) {
127+ A2D_FUNCTION auto MatSum (A2DObj<Atype>& A, A2DObj<Btype>& B, A2DObj<Ctype>& C) {
128128 return MatSumExpr<A2DObj<Atype>, A2DObj<Btype>, A2DObj<Ctype>>(A, B, C);
129129}
130130
131131template <class Atype , class Btype , class Ctype >
132- A2D_FUNCTION auto MatSum (const Atype & A, ADObj<Btype> & B, ADObj<Ctype> & C) {
132+ A2D_FUNCTION auto MatSum (const Atype& A, ADObj<Btype>& B, ADObj<Ctype>& C) {
133133 return MatSumExpr<const Atype, ADObj<Btype>, ADObj<Ctype>>(A, B, C);
134134}
135135
136136template <class Atype , class Btype , class Ctype >
137- A2D_FUNCTION auto MatSum (const Atype & A, A2DObj<Btype> & B, A2DObj<Ctype> & C) {
137+ A2D_FUNCTION auto MatSum (const Atype& A, A2DObj<Btype>& B, A2DObj<Ctype>& C) {
138138 return MatSumExpr<const Atype, A2DObj<Btype>, A2DObj<Ctype>>(A, B, C);
139139}
140140
141141template <class Atype , class Btype , class Ctype >
142- A2D_FUNCTION auto MatSum (ADObj<Atype> & A, const Btype & B, ADObj<Ctype> & C) {
142+ A2D_FUNCTION auto MatSum (ADObj<Atype>& A, const Btype& B, ADObj<Ctype>& C) {
143143 return MatSumExpr<ADObj<Atype>, const Btype, ADObj<Ctype>>(A, B, C);
144144}
145145
146146template <class Atype , class Btype , class Ctype >
147- A2D_FUNCTION auto MatSum (A2DObj<Atype> & A, const Btype & B, A2DObj<Ctype> & C) {
147+ A2D_FUNCTION auto MatSum (A2DObj<Atype>& A, const Btype& B, A2DObj<Ctype>& C) {
148148 return MatSumExpr<A2DObj<Atype>, const Btype, A2DObj<Ctype>>(A, B, C);
149149}
150150
@@ -175,7 +175,7 @@ class MatSumScaleExpr {
175175 " Matrix sizes must agree" );
176176
177177 A2D_FUNCTION
178- MatSumScaleExpr (atype alpha, Atype & A, btype beta, Btype & B, Ctype & C)
178+ MatSumScaleExpr (atype alpha, Atype& A, btype beta, Btype& B, Ctype& C)
179179 : alpha(alpha), A(A), beta(beta), B(B), C(C) {}
180180
181181 A2D_FUNCTION void eval () {
@@ -276,39 +276,39 @@ class MatSumScaleExpr {
276276 }
277277
278278 atype alpha;
279- Atype & A;
279+ Atype& A;
280280 btype beta;
281- Btype & B;
282- Ctype & C;
281+ Btype& B;
282+ Ctype& C;
283283};
284284
285285// Fully AD
286286template <class atype , class Atype , class btype , class Btype , class Ctype >
287- A2D_FUNCTION auto MatSum (ADObj<atype> & alpha, ADObj<Atype> & A,
288- ADObj<btype> & beta, ADObj<Btype> & B, ADObj<Ctype> & C) {
289- return MatSumScaleExpr<ADObj<atype> &, ADObj<Atype>, ADObj<btype> &,
287+ A2D_FUNCTION auto MatSum (ADObj<atype>& alpha, ADObj<Atype>& A,
288+ ADObj<btype>& beta, ADObj<Btype>& B, ADObj<Ctype>& C) {
289+ return MatSumScaleExpr<ADObj<atype>&, ADObj<Atype>, ADObj<btype>&,
290290 ADObj<Btype>, ADObj<Ctype>>(alpha, A, beta, B, C);
291291}
292292
293293template <class atype , class Atype , class btype , class Btype , class Ctype >
294- A2D_FUNCTION auto MatSum (A2DObj<atype> & alpha, A2DObj<Atype> & A,
295- A2DObj<btype> & beta, A2DObj<Btype> & B,
296- A2DObj<Ctype> & C) {
297- return MatSumScaleExpr<A2DObj<atype> &, A2DObj<Atype>, A2DObj<btype> &,
294+ A2D_FUNCTION auto MatSum (A2DObj<atype>& alpha, A2DObj<Atype>& A,
295+ A2DObj<btype>& beta, A2DObj<Btype>& B,
296+ A2DObj<Ctype>& C) {
297+ return MatSumScaleExpr<A2DObj<atype>&, A2DObj<Atype>, A2DObj<btype>&,
298298 A2DObj<Btype>, A2DObj<Ctype>>(alpha, A, beta, B, C);
299299}
300300
301301// Fully AD
302302template <class atype , class Atype , class btype , class Btype , class Ctype >
303- A2D_FUNCTION auto MatSum (const atype alpha, ADObj<Atype> & A, const btype beta,
304- ADObj<Btype> & B, ADObj<Ctype> & C) {
303+ A2D_FUNCTION auto MatSum (const atype alpha, ADObj<Atype>& A, const btype beta,
304+ ADObj<Btype>& B, ADObj<Ctype>& C) {
305305 return MatSumScaleExpr<const atype, ADObj<Atype>, const btype, ADObj<Btype>,
306306 ADObj<Ctype>>(alpha, A, beta, B, C);
307307}
308308
309309template <class atype , class Atype , class btype , class Btype , class Ctype >
310- A2D_FUNCTION auto MatSum (const atype alpha, A2DObj<Atype> & A, const btype beta,
311- A2DObj<Btype> & B, A2DObj<Ctype> & C) {
310+ A2D_FUNCTION auto MatSum (const atype alpha, A2DObj<Atype>& A, const btype beta,
311+ A2DObj<Btype>& B, A2DObj<Ctype>& C) {
312312 return MatSumScaleExpr<const atype, A2DObj<Atype>, const btype, A2DObj<Btype>,
313313 A2DObj<Ctype>>(alpha, A, beta, B, C);
314314}
@@ -329,15 +329,15 @@ class MatSumTest : public A2DTest<T, Mat<T, N, M>, Mat<T, N, M>, Mat<T, N, M>> {
329329 }
330330
331331 // Evaluate the matrix-matrix product
332- Output eval (const Input & x) {
332+ Output eval (const Input& x) {
333333 Mat<T, N, M> A, B, C;
334334 x.get_values (A, B);
335335 MatSum (A, B, C);
336336 return MakeVarTuple<T>(C);
337337 }
338338
339339 // Compute the derivative
340- void deriv (const Output & seed, const Input & x, Input & g) {
340+ void deriv (const Output& seed, const Input& x, Input& g) {
341341 ADObj<Mat<T, N, M>> A, B, C;
342342 x.get_values (A.value (), B.value ());
343343 auto stack = MakeStack (MatSum (A, B, C));
@@ -347,8 +347,8 @@ class MatSumTest : public A2DTest<T, Mat<T, N, M>, Mat<T, N, M>, Mat<T, N, M>> {
347347 }
348348
349349 // Compute the second-derivative
350- void hprod (const Output & seed, const Output & hval, const Input & x,
351- const Input & p, Input & h) {
350+ void hprod (const Output& seed, const Output& hval, const Input& x,
351+ const Input& p, Input& h) {
352352 A2DObj<Mat<T, N, M>> A, B, C;
353353 x.get_values (A.value (), B.value ());
354354 p.get_values (A.pvalue (), B.pvalue ());
@@ -375,7 +375,7 @@ class MatSumScaleTest
375375 }
376376
377377 // Evaluate the matrix-matrix product
378- Output eval (const Input & x) {
378+ Output eval (const Input& x) {
379379 T alpha, beta;
380380 Mat<T, N, M> A, B, C;
381381 x.get_values (alpha, A, beta, B);
@@ -384,7 +384,7 @@ class MatSumScaleTest
384384 }
385385
386386 // Compute the derivative
387- void deriv (const Output & seed, const Input & x, Input & g) {
387+ void deriv (const Output& seed, const Input& x, Input& g) {
388388 ADObj<T> alpha, beta;
389389 ADObj<Mat<T, N, M>> A, B, C;
390390 x.get_values (alpha.value (), A.value (), beta.value (), B.value ());
@@ -395,8 +395,8 @@ class MatSumScaleTest
395395 }
396396
397397 // Compute the second-derivative
398- void hprod (const Output & seed, const Output & hval, const Input & x,
399- const Input & p, Input & h) {
398+ void hprod (const Output& seed, const Output& hval, const Input& x,
399+ const Input& p, Input& h) {
400400 A2DObj<T> alpha, beta;
401401 A2DObj<Mat<T, N, M>> A, B, C;
402402 x.get_values (alpha.value (), A.value (), beta.value (), B.value ());
0 commit comments