v0.14.0
Tensor3_number.hpp
Go to the documentation of this file.
1 /* This is for expressions where a number is used for one or two
2  slots, and an index for the others, yielding a Tensor1_Expr or
3  Tensor2_Expr. */
4 
5 #pragma once
6 
7 namespace FTensor
8 {
9  /* First slot. */
10 
11  template <class A, class T, int N> class Tensor3_number_0
12  {
14 
15  public:
16  T operator()(const int N1, const int N2) const { return iterA(N, N1, N2); }
17  Tensor3_number_0(const A &a) : iterA(a) {}
18  };
19 
20  template <class A, class T, int N> class Tensor3_number_rhs_0
21  {};
22 
23  /* Second slot. */
24 
25  template <class A, class T, int N> class Tensor3_number_1
26  {
28 
29  public:
30  T operator()(const int N1, const int N2) const { return iterA(N1, N, N2); }
31  Tensor3_number_1(const A &a) : iterA(a) {}
32  };
33 
34  template <class A, class T, int N> class Tensor3_number_rhs_1
35  {};
36 
37  /* Third slot. */
38 
39  template <class A, class T, int N> class Tensor3_number_2
40  {
42 
43  public:
44  T operator()(const int N1, const int N2) const { return iterA(N1, N2, N); }
45  Tensor3_number_2(const A &a) : iterA(a) {}
46  };
47 
48  template <class A, class T, int N> class Tensor3_number_rhs_2
49  {};
50 
51  /* First and second slot. */
52 
53  template <class A, class T, int N1, int N2> class Tensor3_number_01
54  {
56 
57  public:
58  T operator()(const int N) const { return iterA(N1, N2, N); }
59  Tensor3_number_01(const A &a) : iterA(a) {}
60  };
61 
62  template <class A, class T, int N1, int N2> class Tensor3_number_rhs_01
63  {};
64 
65  /* First and third slot. */
66 
67  template <class A, class T, int N1, int N2> class Tensor3_number_02
68  {
70 
71  public:
72  T operator()(const int N) const { return iterA(N1, N, N2); }
73  Tensor3_number_02(const A &a) : iterA(a) {}
74  };
75 
76  template <class A, class T, int N1, int N2> class Tensor3_number_rhs_02
77  {};
78 
79  /* Second and third slot. */
80 
81  template <class A, class T, int N1, int N2> class Tensor3_number_12
82  {
84 
85  public:
86  T operator()(const int N) const { return iterA(N, N1, N2); }
87  Tensor3_number_12(const A &a) : iterA(a) {}
88  };
89 
90  template <class A, class T, int N1, int N2> class Tensor3_number_rhs_12
91  {};
92 }
FTensor::Tensor3_number_12::iterA
A iterA
Definition: Tensor3_number.hpp:83
FTensor
JSON compatible output.
Definition: Christof_constructor.hpp:6
FTensor::Tensor3_number_1
Definition: Tensor3_number.hpp:25
FTensor::Tensor3_number_rhs_02
Definition: Tensor3_number.hpp:76
FTensor::Tensor3_number_2::operator()
T operator()(const int N1, const int N2) const
Definition: Tensor3_number.hpp:44
FTensor::Tensor3_number_02::Tensor3_number_02
Tensor3_number_02(const A &a)
Definition: Tensor3_number.hpp:73
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
FTensor::Tensor3_number_1::Tensor3_number_1
Tensor3_number_1(const A &a)
Definition: Tensor3_number.hpp:31
FTensor::Tensor3_number_01::iterA
A iterA
Definition: Tensor3_number.hpp:55
FTensor::Tensor3_number_01::Tensor3_number_01
Tensor3_number_01(const A &a)
Definition: Tensor3_number.hpp:59
FTensor::Tensor3_number_0::iterA
A iterA
Definition: Tensor3_number.hpp:13
FTensor::Tensor3_number_1::iterA
A iterA
Definition: Tensor3_number.hpp:27
FTensor::Tensor3_number_0
Definition: Tensor3_number.hpp:11
FTensor::Tensor3_number_rhs_0
Definition: Tensor3_number.hpp:20
FTensor::Tensor3_number_12::operator()
T operator()(const int N) const
Definition: Tensor3_number.hpp:86
FTensor::Tensor3_number_02
Definition: Tensor3_number.hpp:67
FTensor::Tensor3_number_rhs_01
Definition: Tensor3_number.hpp:62
a
constexpr double a
Definition: approx_sphere.cpp:30
FTensor::Tensor3_number_0::operator()
T operator()(const int N1, const int N2) const
Definition: Tensor3_number.hpp:16
FTensor::Tensor3_number_rhs_12
Definition: Tensor3_number.hpp:90
FTensor::Tensor3_number_02::iterA
A iterA
Definition: Tensor3_number.hpp:69
FTensor::Tensor3_number_12
Definition: Tensor3_number.hpp:81
FTensor::Tensor3_number_01
Definition: Tensor3_number.hpp:53
FTensor::Tensor3_number_rhs_1
Definition: Tensor3_number.hpp:34
N
const int N
Definition: speed_test.cpp:3
FTensor::Tensor3_number_1::operator()
T operator()(const int N1, const int N2) const
Definition: Tensor3_number.hpp:30
FTensor::Tensor3_number_2::Tensor3_number_2
Tensor3_number_2(const A &a)
Definition: Tensor3_number.hpp:45
FTensor::Tensor3_number_0::Tensor3_number_0
Tensor3_number_0(const A &a)
Definition: Tensor3_number.hpp:17
FTensor::Tensor3_number_12::Tensor3_number_12
Tensor3_number_12(const A &a)
Definition: Tensor3_number.hpp:87
FTensor::Tensor3_number_2
Definition: Tensor3_number.hpp:39
FTensor::Tensor3_number_rhs_2
Definition: Tensor3_number.hpp:48
FTensor::Tensor3_number_2::iterA
A iterA
Definition: Tensor3_number.hpp:41
FTensor::Tensor3_number_01::operator()
T operator()(const int N) const
Definition: Tensor3_number.hpp:58
FTensor::Tensor3_number_02::operator()
T operator()(const int N) const
Definition: Tensor3_number.hpp:72