v0.13.2
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > Class Template Reference

#include <src/ftensor/src/FTensor/Tensor4/Tensor4_Expr.hpp>

Collaboration diagram for FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >:
[legend]

Public Member Functions

 Tensor4_Expr (Tensor4< A, Dim0, Dim1, Dim2, Dim3 > &a)
 
Toperator() (const int N1, const int N2, const int N3, const int N4)
 
T operator() (const int N1, const int N2, const int N3, const int N4) const
 
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & equals (const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & operator= (const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &rhs)
 
auto & operator= (const Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &rhs)
 
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & equals (const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & operator= (const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & operator+= (const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & operator-= (const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & operator+= (const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &rhs)
 
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & operator-= (const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &rhs)
 
template<class U >
auto & operator= (const U &d)
 
template<class U >
auto & operator*= (const U &d)
 
template<class U >
auto & operator/= (const U &d)
 

Private Attributes

Tensor4< A, Dim0, Dim1, Dim2, Dim3 > & iter
 

Detailed Description

template<class A, class T, int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
class FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >

Definition at line 39 of file Tensor4_Expr.hpp.

Constructor & Destructor Documentation

◆ Tensor4_Expr()

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::Tensor4_Expr ( Tensor4< A, Dim0, Dim1, Dim2, Dim3 > &  a)
inline

Definition at line 45 of file Tensor4_Expr.hpp.

Member Function Documentation

◆ equals() [1/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::equals ( const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 92 of file Tensor4_Expr.hpp.

92 {
93 for(int ii = 0; ii != Dim01; ++ii)
94 for(int jj = 0; jj != Dim01; ++jj)
95 for(int kk = 0; kk != Dim23; ++kk)
96 for (int ll = 0; ll != Dim23; ++ll) {
97 iter(ii, jj, kk, ll) = permute(*this, rhs, ii, jj, kk, ll);
98 }
99 return *this;
100 }
U permute(const Tensor2_Expr< A, T, Dim0_0, Dim0_1, i0, j0 > &, const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i1, j1 > &rhs, const int N0, const int N1)
Definition: permute.hpp:11

◆ equals() [2/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::equals ( const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 61 of file Tensor4_Expr.hpp.

63 {
64 for(int ii = 0; ii < Dim0; ++ii)
65 for(int jj = 0; jj < Dim1; ++jj)
66 for(int kk = 0; kk < Dim2; ++kk)
67 for(int ll = 0; ll < Dim3; ++ll)
68 {
69 iter(ii, jj, kk, ll) = permute(*this, rhs, ii, jj, kk, ll);
70 }
71 return *this;
72 }

◆ operator()() [1/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
T & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
)
inline

Definition at line 46 of file Tensor4_Expr.hpp.

47 {
48 return iter(N1, N2, N3, N4);
49 }
static Number< 2 > N2
static Number< 1 > N1

◆ operator()() [2/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
T FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
) const
inline

Definition at line 50 of file Tensor4_Expr.hpp.

51 {
52 return iter(N1, N2, N3, N4);
53 }

◆ operator*=()

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class U >
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator*= ( const U &  d)
inline

Definition at line 174 of file Tensor4_Expr.hpp.

174 {
175 for (int ii = 0; ii != Dim0; ++ii)
176 for (int jj = 0; jj != Dim1; ++jj)
177 for (int kk = 0; kk != Dim2; ++kk)
178 for (int ll = 0; ll != Dim3; ++ll)
179 iter(ii, jj, kk, ll) *= d;
180 return *this;
181 }
const Tensor1_Expr< const dTensor0< T, Dim, i >, typename promote< T, double >::V, Dim, i > d(const Tensor0< T * > &a, const Index< i, Dim > index, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
Definition: dTensor0.hpp:27

◆ operator+=() [1/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator+= ( const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 142 of file Tensor4_Expr.hpp.

142 {
143 for (int ii = 0; ii != Dim01; ++ii)
144 for (int jj = 0; jj != Dim01; ++jj)
145 for (int kk = 0; kk != Dim23; ++kk)
146 for (int ll = 0; ll != Dim23; ++ll) {
147 iter(ii, jj, kk, ll) += rhs(ii, jj, kk, ll);
148 }
149 return *this;
150 }

◆ operator+=() [2/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator+= ( const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 111 of file Tensor4_Expr.hpp.

113 {
114 for(int ii = 0; ii < Dim0; ++ii)
115 for(int jj = 0; jj < Dim1; ++jj)
116 for(int kk = 0; kk < Dim2; ++kk)
117 for(int ll = 0; ll < Dim3; ++ll)
118 {
119 iter(ii, jj, kk, ll) += permute(*this, rhs, ii, jj, kk, ll);
120 }
121 return *this;
122 }

◆ operator-=() [1/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator-= ( const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 155 of file Tensor4_Expr.hpp.

155 {
156 for (int ii = 0; ii != Dim01; ++ii)
157 for (int jj = 0; jj != Dim01; ++jj)
158 for (int kk = 0; kk != Dim23; ++kk)
159 for (int ll = 0; ll != Dim23; ++ll) {
160 iter(ii, jj, kk, ll) -= rhs(ii, jj, kk, ll);
161 }
162 return *this;
163 }

◆ operator-=() [2/2]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator-= ( const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 126 of file Tensor4_Expr.hpp.

128 {
129 for(int ii = 0; ii < Dim0; ++ii)
130 for(int jj = 0; jj < Dim1; ++jj)
131 for(int kk = 0; kk < Dim2; ++kk)
132 for(int ll = 0; ll < Dim3; ++ll)
133 {
134 iter(ii, jj, kk, ll) += permute(*this, rhs, ii, jj, kk, ll);
135 }
136 return *this;
137 }

◆ operator/=()

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class U >
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator/= ( const U &  d)
inline

Definition at line 183 of file Tensor4_Expr.hpp.

183 {
184 for (int ii = 0; ii != Dim0; ++ii)
185 for (int jj = 0; jj != Dim1; ++jj)
186 for (int kk = 0; kk != Dim2; ++kk)
187 for (int ll = 0; ll != Dim3; ++ll)
188 iter(ii, jj, kk, ll) /= d;
189 return *this;
190 }

◆ operator=() [1/4]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim01, int Dim23, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator= ( const Ddg_Expr< B, U, Dim01, Dim23, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 105 of file Tensor4_Expr.hpp.

105 {
106 return equals(rhs);
107 }
auto & equals(const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &rhs)

◆ operator=() [2/4]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class B , class U , int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i_1, char j_1, char k_1, char l_1>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator= ( const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i_1, j_1, k_1, l_1 > &  rhs)
inline

Definition at line 76 of file Tensor4_Expr.hpp.

78 {
79 return equals(rhs);
80 }

◆ operator=() [3/4]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator= ( const Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  rhs)
inline

Definition at line 83 of file Tensor4_Expr.hpp.

85 {
86 return equals(rhs);
87 }

◆ operator=() [4/4]

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
template<class U >
auto & FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::operator= ( const U &  d)
inline

Definition at line 165 of file Tensor4_Expr.hpp.

165 {
166 for (int ii = 0; ii != Dim0; ++ii)
167 for (int jj = 0; jj != Dim1; ++jj)
168 for (int kk = 0; kk != Dim2; ++kk)
169 for (int ll = 0; ll != Dim3; ++ll)
170 iter(ii, jj, kk, ll) = d;
171 return *this;
172 }

Member Data Documentation

◆ iter

template<class A , class T , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor4<A, Dim0, Dim1, Dim2, Dim3>& FTensor::Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >::iter
private

Definition at line 42 of file Tensor4_Expr.hpp.


The documentation for this class was generated from the following file: