v0.15.0
Loading...
Searching...
No Matches
Tensor4_times_generic.hpp
Go to the documentation of this file.
1namespace FTensor {
2/* A(i,j,k,l)*generic */
3
4template <class A, class T, class U, int Dim0, int Dim1, int Dim2, int Dim3,
5 char i, char j, char k, char l>
7 const U &d0) {
8 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
9 const int N4) {
10 return a.operator()(N1, N2, N3, N4) * d0;
11 };
12 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
13 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
14}
15
16/* generic*A(i,j,k,l) */
17
18template <class A, class T, class U, int Dim0, int Dim1, int Dim2, int Dim3,
19 char i, char j, char k, char l>
21 const U &d0,
23 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
24 const int N4) {
25 return d0 * a.operator()(N1, N2, N3, N4);
26 };
27 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
28 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
29}
30
31/* A(i,j,k,l)/generic */
32
33template <class A, class T, class U, int Dim0, int Dim1, int Dim2, int Dim3,
34 char i, char j, char k, char l>
36 const U &d0) {
37 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
38 const int N4) {
39 return a.operator()(N1, N2, N3) / d0;
40 };
41 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
42 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
43}
44
45/* generic/A(i,j,k,l) */
46
47template <class A, class T, class U, int Dim0, int Dim1, int Dim2, int Dim3,
48 char i, char j, char k, char l>
50 const U &d0,
52 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
53 const int N4) {
54 return d0 / a.operator()(N1, N2, N3, N4);
55 };
56 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
57 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
58}
59
60} // namespace FTensor
constexpr double a
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
Tensors class implemented by Walter Landry.
Definition FTensor.hpp:51
promote< T, U >::V operator*(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
auto operator/(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
constexpr AssemblyType A