v0.15.0
Loading...
Searching...
No Matches
Ddg_or_Ddg.hpp
Go to the documentation of this file.
1/* Declares expressions of Ddg || Ddg. This adds them in
2 a different way, but still ending up with a Ddg. */
3
4#pragma once
5
6namespace FTensor
7{
8 /* A(i,j,k,l)+B(i,l,k,j) -> Ddg */
9
10 template <class A, class B, class T, class U, int Dim, char i, char j,
11 char k, char l>
13 {
16
17 public:
18 typename promote<T, U>::V
19 operator()(const int N1, const int N2, const int N3, const int N4) const
20 {
21 return iterA(N1, N3, N2, N4) + iterB(N1, N4, N2, N3);
22 }
27 };
28
29 template <class A, class B, class T, class U, int Dim, char i, char j,
30 char k, char l>
31 Ddg_Expr<Ddg_or_Ddg<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V,
32 Dim, Dim, i, k, j, l>
40}
constexpr double a
Ddg_Expr< A, T, Dim, Dim, i, j, k, l > iterA
Ddg_or_Ddg(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
promote< T, U >::V operator()(const int N1, const int N2, const int N3, const int N4) const
Ddg_Expr< B, U, Dim, Dim, i, l, k, j > iterB
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
Ddg_Expr< Ddg_or_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, j, l > operator||(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
constexpr AssemblyType A