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_APPLY_12_QF_H
5 : #define PALACE_LIBCEED_APPLY_12_QF_H
6 :
7 0 : CEED_QFUNCTION(f_apply_12)(void *, CeedInt Q, const CeedScalar *const *in,
8 : CeedScalar *const *out)
9 : {
10 0 : const CeedScalar *__restrict__ qd1 = in[0], *__restrict__ qd2 = in[0] + Q,
11 0 : *__restrict__ u1 = in[1], *__restrict__ u2 = in[2];
12 0 : CeedScalar *__restrict__ v1 = out[0], *__restrict__ v2 = out[1];
13 :
14 0 : CeedPragmaSIMD for (CeedInt i = 0; i < Q; i++)
15 : {
16 0 : v1[i] = qd1[i] * u1[i];
17 :
18 0 : const CeedScalar u20 = u2[i + Q * 0];
19 0 : const CeedScalar u21 = u2[i + Q * 1];
20 0 : v2[i + Q * 0] = qd2[i + Q * 0] * u20 + qd2[i + Q * 2] * u21;
21 0 : v2[i + Q * 1] = qd2[i + Q * 1] * u20 + qd2[i + Q * 3] * u21;
22 : }
23 0 : return 0;
24 : }
25 :
26 : #endif // PALACE_LIBCEED_APPLY_12_QF_H
|