v0.14.0
Loading...
Searching...
No Matches
Dg_divide_generic.hpp
Go to the documentation of this file.
1/* Divides a Dg by a generic, yielding a Dg. */
2
3#pragma once
4
5namespace FTensor
6{
7 template <class A, class T, class U, int Dim01, int Dim2, char i, char j,
8 char k>
10 {
12 U d;
13
14 public:
15 typename promote<T, U>::V
16 operator()(const int N1, const int N2, const int N3) const
17 {
18 return iterA(N1, N2, N3) / d;
19 }
20
22 const U &d0)
23 : iterA(a), d(d0)
24 {}
25 };
26
27 /* A(i,j,k)/d0->Dg */
28
29 template <class A, class T, class U, int Dim01, int Dim2, char i, char j,
30 char k>
31 Dg_Expr<Dg_divide_generic<A, T, U, Dim01, Dim2, i, j, k>,
32 typename promote<T, U>::V, Dim01, Dim2, i, j, k>
34 {
36 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
37 TensorExpr(a, d0));
38 }
39}
static Number< 2 > N2
static Number< 1 > N1
constexpr double a
Dg_Expr< A, T, Dim01, Dim2, i, j, k > iterA
Dg_divide_generic(const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const U &d0)
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
const double T
Tensors class implemented by Walter Landry.
Definition FTensor.hpp:51
auto operator/(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
constexpr AssemblyType A