Line data Source code
1 : // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 : // SPDX-License-Identifier: Apache-2.0
3 :
4 : #ifndef PALACE_LIBCEED_HCURL_BUILD_22_QF_H
5 : #define PALACE_LIBCEED_HCURL_BUILD_22_QF_H
6 :
7 : #include "../coeff/coeff_2_qf.h"
8 : #include "utils_22_qf.h"
9 :
10 0 : CEED_QFUNCTION(f_build_hcurl_22)(void *__restrict__ ctx, CeedInt Q,
11 : const CeedScalar *const *in, CeedScalar *const *out)
12 : {
13 0 : const CeedScalar *attr = in[0], *wdetJ = in[0] + Q, *adjJt = in[0] + 2 * Q;
14 0 : CeedScalar *qd = out[0];
15 :
16 0 : CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++)
17 : {
18 : CeedScalar coeff[4], adjJt_loc[4], qd_loc[4];
19 0 : CoeffUnpack2((const CeedIntScalar *)ctx, (CeedInt)attr[i], coeff);
20 0 : MatUnpack22(adjJt + i, Q, adjJt_loc);
21 : MultAtBA22(adjJt_loc, coeff, qd_loc);
22 :
23 0 : qd[i + Q * 0] = wdetJ[i] * qd_loc[0];
24 0 : qd[i + Q * 1] = wdetJ[i] * qd_loc[1];
25 0 : qd[i + Q * 2] = wdetJ[i] * qd_loc[2];
26 0 : qd[i + Q * 3] = wdetJ[i] * qd_loc[3];
27 : }
28 0 : return 0;
29 : }
30 :
31 : #endif // PALACE_LIBCEED_HCURL_BUILD_22_QF_H
|