1#ifndef __MATH_TENSOR_KERNEL_H__
2#define __MATH_TENSOR_KERNEL_H__
36template<
typename T, const
int N >
52 const int e = elements[
pt];
58 for(
int l = 0; l < nu; l++){
69 const int k =
jk /
nv;
73 for(
int l = 0; l < nu; l++){
84 const int k =
jk /
nv;
88 for(
int l = 0; l < nu; l++){
98template<
typename T, const
int N >
117 for(
int l = 0; l < nu; l++){
118 tmp +=
A[
i+l*
nv]*
u[l+nu*
j+
e*nu*nu*nu];
128 const int k =
jk /
nv;
129 const int j =
jk -
k *
nv;
132 for(
int l = 0; l < nu; l++){
143 const int k =
jk /
nv;
144 const int j =
jk -
k *
nv;
147 for(
int l = 0; l < nu; l++){
154template<
typename T, const
int N >
173 for(
int l = 0; l < nu; l++){
174 tmp +=
A[
i+l*
nv]*
u[l+nu*
j+
e*nu*nu*nu];
184 const int k =
jk /
nv;
185 const int j =
jk -
k *
nv;
188 for(
int l = 0; l < nu; l++){
199 const int k =
jk /
nv;
200 const int j =
jk -
k *
nv;
203 for(
int l = 0; l < nu; l++){
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
__global__ void tnsr3d_el_kernel(T *__restrict__ v, const int nv, const T *__restrict__ u, const int nu, const T *__restrict__ A, const T *__restrict__ Bt, const T *__restrict__ Ct, const int *elements, const int n_points)
__global__ void tnsr3d_kernel(T *__restrict__ v, const int nv, const T *__restrict__ u, const int nu, const T *__restrict__ A, const T *__restrict__ Bt, const T *__restrict__ Ct)
__global__ void tnsr3d_kernel_large(T *__restrict__ v, const int nv, const T *__restrict__ u, const int nu, const T *__restrict__ A, const T *__restrict__ Bt, const T *__restrict__ Ct)