v0.6.10
Public Member Functions | Private Attributes | List of all members
Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 > Class Template Reference

#include <src/ftensor/src/FTensor/Tensor3_christof/Tensor3_christof_value.hpp>

Public Member Functions

 Tensor3_christof ()
 
 Tensor3_christof (T d000, T d100, T d001, T d101, T d011, T d111)
 
 Tensor3_christof (T d000, T d100, T d200, T d001, T d101, T d201, T d002, T d102, T d202, T d011, T d111, T d211, T d012, T d112, T d212, T d022, T d122, T d222)
 
 Tensor3_christof (T d000, T d100, T d200, T d300, T d001, T d101, T d201, T d301, T d002, T d102, T d202, T d302, T d003, T d103, T d203, T d303, T d011, T d111, T d211, T d311, T d012, T d112, T d212, T d312, T d013, T d113, T d213, T d313, T d022, T d122, T d222, T d322, T d023, T d123, T d223, T d323, T d033, T d133, T d233, T d333)
 
T & operator() (const int N1, const int N2, const int N3)
 
operator() (const int N1, const int N2, const int N3) const
 
template<char i, char j, char k, int Dim0, int Dim12>
Tensor3_dg_Expr< Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k > operator() (const Index< k, Dim0 >, const Index< i, Dim12 >, const Index< j, Dim12 >)
 
template<char i, char j, char k, int Dim0, int Dim12>
Tensor3_dg_Expr< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k > operator() (const Index< k, Dim0 >, const Index< i, Dim12 >, const Index< j, Dim12 >) const
 
template<char i, int N1, int N2, int Dim>
Tensor1_Expr< Tensor3_dg_number_rhs_12< Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, N1, N2 >, T, Dim, i > operator() (const Index< i, Dim >, const Number< N1 >, const Number< N2 >)
 
template<char i, int N1, int N2, int Dim>
const Tensor1_Expr< const Tensor3_dg_number_12< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, N1, N2 >, T, Dim, i > operator() (const Index< i, Dim > index, const Number< N1 > n1, const Number< N2 > n2) const
 
template<char i, char j, int Dim0, int Dim12>
Tensor1_Expr< const Tensor3_contracted_12< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim12 >, T, Dim0, i > operator() (const Index< i, Dim0 >, const Index< j, Dim12 >, const Index< j, Dim12 >) const
 
template<char i, char j, int Dim>
Tensor1_Expr< const Tensor3_contracted_02< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim >, T, Dim, i > operator() (const Index< j, Dim >, const Index< i, Dim >, const Index< j, Dim >) const
 
template<char i, char j, int Dim>
Tensor1_Expr< const Tensor3_contracted_01< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim >, T, Dim, i > operator() (const Index< j, Dim >, const Index< j, Dim >, const Index< i, Dim >) const
 
template<char i, char j, int Dim0, int Dim12>
Tensor1_Expr< const Tensor3_contracted_12< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim12 >, T, Dim0, i > operator() (const Index< i, Dim0 >, const Index< j, Dim12 >, const Index< j, Dim12 >)
 
template<char i, char j, int Dim>
Tensor1_Expr< const Tensor3_contracted_02< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim >, T, Dim, i > operator() (const Index< j, Dim >, const Index< i, Dim >, const Index< j, Dim >)
 
template<char i, char j, int Dim>
Tensor1_Expr< const Tensor3_contracted_01< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, Dim >, T, Dim, i > operator() (const Index< j, Dim >, const Index< j, Dim >, const Index< i, Dim >)
 
template<char i, char j, int N, int Dim12>
Tensor2_symmetric_Expr< const Tensor3_christof_number_0< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T, N >, T, Dim12, i, j > operator() (const Number< N >, const Index< i, Dim12 >, const Index< j, Dim12 >) const
 
template<char i, char j, int Dim12>
Tensor2_symmetric_Expr< const Tensor3_christof_numeral_0< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T >, T, Dim12, i, j > operator() (const int N, const Index< i, Dim12 >, const Index< j, Dim12 >) const
 
template<char i, char j, int Dim0, int Dim2>
Tensor2_Expr< const Tensor3_christof_numeral_1< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T >, T, Dim0, Dim2, i, j > operator() (const Index< i, Dim0 >, const int N, const Index< j, Dim2 >) const
 
template<char i, char j, int Dim0, int Dim2>
Tensor2_Expr< const Tensor3_christof_numeral_1< const Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >, T >, T, Dim0, Dim2, i, j > operator() (const Index< i, Dim0 >, const Index< j, Dim2 >, const int N) const
 

Private Attributes

data [Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]
 

Detailed Description

template<class T, int Tensor_Dim0, int Tensor_Dim12>
class Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >

Definition at line 4 of file Tensor3_christof_value.hpp.

Constructor & Destructor Documentation

◆ Tensor3_christof() [1/4]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::Tensor3_christof ( )

Definition at line 8 of file Tensor3_christof_value.hpp.

8 {}

◆ Tensor3_christof() [2/4]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::Tensor3_christof ( d000,
d100,
d001,
d101,
d011,
d111 
)

Definition at line 11 of file Tensor3_christof_value.hpp.

12  {
14  (data,d000,d100,d001,d101,d011,d111);
15  }
T data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]

◆ Tensor3_christof() [3/4]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::Tensor3_christof ( d000,
d100,
d200,
d001,
d101,
d201,
d002,
d102,
d202,
d011,
d111,
d211,
d012,
d112,
d212,
d022,
d122,
d222 
)

Definition at line 18 of file Tensor3_christof_value.hpp.

21  {
23  (data,d000,d100,d200,d001,d101,d201,d002,d102,d202,d011,d111,d211,
24  d012,d112,d212,d022,d122,d222);
25  }
T data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]

◆ Tensor3_christof() [4/4]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::Tensor3_christof ( d000,
d100,
d200,
d300,
d001,
d101,
d201,
d301,
d002,
d102,
d202,
d302,
d003,
d103,
d203,
d303,
d011,
d111,
d211,
d311,
d012,
d112,
d212,
d312,
d013,
d113,
d213,
d313,
d022,
d122,
d222,
d322,
d023,
d123,
d223,
d323,
d033,
d133,
d233,
d333 
)

Definition at line 28 of file Tensor3_christof_value.hpp.

38  {
40  (data,d000,d100,d200,d300,d001,d101,d201,d301,
41  d002,d102,d202,d302,d003,d103,d203,d303,
42  d011,d111,d211,d311,d012,d112,d212,d312,
43  d013,d113,d213,d313,d022,d122,d222,d322,
44  d023,d123,d223,d323,d033,d133,d233,d333);
45  }
T data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]

Member Function Documentation

◆ operator()() [1/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
T& Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const int  N1,
const int  N2,
const int  N3 
)

Definition at line 50 of file Tensor3_christof_value.hpp.

51  {
52 #ifdef FTENSOR_DEBUG
53  if(N1>=Tensor_Dim0 || N1<0
54  || N2>=Tensor_Dim12 || N2<0 || N3>=Tensor_Dim12 || N3<0)
55  {
56  std::stringstream s;
57  s << "Bad index in Tensor3_christof<T,"
58  << Tensor_Dim0 << "," << Tensor_Dim12
59  << ">.operator("
60  << N1 << "," << N2 << "," << N3 << ")" << std::endl;
61  throw std::runtime_error(s.str());
62  }
63 #endif
64  return N2>N3 ? data[N1][N2+(N3*(2*Tensor_Dim12-N3-1))/2]
65  : data[N1][N3+(N2*(2*Tensor_Dim12-N2-1))/2];
66  }
T data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]

◆ operator()() [2/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
T Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const int  N1,
const int  N2,
const int  N3 
) const

Definition at line 68 of file Tensor3_christof_value.hpp.

69  {
70 #ifdef FTENSOR_DEBUG
71  if(N1>=Tensor_Dim0 || N1<0
72  || N2>=Tensor_Dim12 || N2<0 || N3>=Tensor_Dim12 || N3<0)
73  {
74  std::stringstream s;
75  s << "Bad index in Tensor3_christof<T,"
76  << Tensor_Dim0 << "," << Tensor_Dim12
77  << ">.operator("
78  << N1 << "," << N2 << "," << N3 << ") const"
79  << std::endl;
80  throw std::runtime_error(s.str());
81  }
82 #endif
83  return N2>N3 ? data[N1][N2+(N3*(2*Tensor_Dim12-N3-1))/2]
84  : data[N1][N3+(N2*(2*Tensor_Dim12-N2-1))/2];
85  }
T data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]

◆ operator()() [3/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, char k, int Dim0, int Dim12>
Tensor3_dg_Expr<Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim12,Dim0,i,j,k> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< k, Dim0 >  ,
const Index< i, Dim12 >  ,
const Index< j, Dim12 >   
)

Definition at line 94 of file Tensor3_christof_value.hpp.

96  {
97  return Tensor3_dg_Expr<Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim12,Dim0,i,j,k>(*this);
98  }

◆ operator()() [4/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, char k, int Dim0, int Dim12>
Tensor3_dg_Expr<const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim12,Dim0,i,j,k> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< k, Dim0 >  ,
const Index< i, Dim12 >  ,
const Index< j, Dim12 >   
) const

Definition at line 102 of file Tensor3_christof_value.hpp.

104  {
106  T,Dim12,Dim0,i,j,k>(*this);
107  }

◆ operator()() [5/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, int N1, int N2, int Dim>
Tensor1_Expr<Tensor3_dg_number_rhs_12<Tensor3_christof<T,Tensor_Dim0, Tensor_Dim12>, T,N1,N2>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim >  ,
const Number< N1 >  ,
const Number< N2 >   
)

Definition at line 120 of file Tensor3_christof_value.hpp.

122  {
123  typedef Tensor3_dg_number_rhs_12<Tensor3_christof<T,Tensor_Dim0,
124  Tensor_Dim12>,
125  T,N1,N2> TensorExpr;
126  return Tensor1_Expr<TensorExpr,T,Dim,i>(*this);
127  }

◆ operator()() [6/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, int N1, int N2, int Dim>
const Tensor1_Expr<const Tensor3_dg_number_12<const Tensor3_christof <T,Tensor_Dim0,Tensor_Dim12>, T,N1,N2>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim >  index,
const Number< N1 >  n1,
const Number< N2 >  n2 
) const

Definition at line 133 of file Tensor3_christof_value.hpp.

135  {
136  typedef const Tensor3_dg_number_12<const Tensor3_christof
137  <T,Tensor_Dim0,Tensor_Dim12>,
138  T,N1,N2> TensorExpr;
139  return Tensor1_Expr<TensorExpr,T,Dim,i>(TensorExpr(*this));
140  }

◆ operator()() [7/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim0, int Dim12>
Tensor1_Expr<const Tensor3_contracted_12 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim12>,T,Dim0,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim0 >  ,
const Index< j, Dim12 >  ,
const Index< j, Dim12 >   
) const

Definition at line 151 of file Tensor3_christof_value.hpp.

153  {
154  typedef const Tensor3_contracted_12
156  TensorExpr;
157  return Tensor1_Expr<TensorExpr,T,Dim0,i>(TensorExpr(*this));
158  }

◆ operator()() [8/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim>
Tensor1_Expr<const Tensor3_contracted_02 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< j, Dim >  ,
const Index< i, Dim >  ,
const Index< j, Dim >   
) const

Definition at line 163 of file Tensor3_christof_value.hpp.

165  {
166  typedef const Tensor3_contracted_02
168  TensorExpr;
169  return Tensor1_Expr<TensorExpr,T,Dim,i>(TensorExpr(*this));
170  }

◆ operator()() [9/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim>
Tensor1_Expr<const Tensor3_contracted_01 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< j, Dim >  ,
const Index< j, Dim >  ,
const Index< i, Dim >   
) const

Definition at line 187 of file Tensor3_christof_value.hpp.

189  {
190  typedef const Tensor3_contracted_01
192  TensorExpr;
193  return Tensor1_Expr<TensorExpr,T,Dim,i>(TensorExpr(*this));
194  }

◆ operator()() [10/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim0, int Dim12>
Tensor1_Expr<const Tensor3_contracted_12 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim12>,T,Dim0,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim0 >  ,
const Index< j, Dim12 >  ,
const Index< j, Dim12 >   
)

Definition at line 214 of file Tensor3_christof_value.hpp.

216  {
217  typedef const Tensor3_contracted_12
219  TensorExpr;
220  return Tensor1_Expr<TensorExpr,T,Dim0,i>(TensorExpr(*this));
221  }

◆ operator()() [11/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim>
Tensor1_Expr<const Tensor3_contracted_02 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< j, Dim >  ,
const Index< i, Dim >  ,
const Index< j, Dim >   
)

Definition at line 226 of file Tensor3_christof_value.hpp.

228  {
229  typedef const Tensor3_contracted_02
231  TensorExpr;
232  return Tensor1_Expr<TensorExpr,T,Dim,i>(TensorExpr(*this));
233  }

◆ operator()() [12/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim>
Tensor1_Expr<const Tensor3_contracted_01 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,Dim>,T,Dim,i> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< j, Dim >  ,
const Index< j, Dim >  ,
const Index< i, Dim >   
)

Definition at line 250 of file Tensor3_christof_value.hpp.

252  {
253  typedef const Tensor3_contracted_01
255  TensorExpr;
256  return Tensor1_Expr<TensorExpr,T,Dim,i>(TensorExpr(*this));
257  }

◆ operator()() [13/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int N, int Dim12>
Tensor2_symmetric_Expr<const Tensor3_christof_number_0 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T,N>,T,Dim12,i,j> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Number< N ,
const Index< i, Dim12 >  ,
const Index< j, Dim12 >   
) const

◆ operator()() [14/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim12>
Tensor2_symmetric_Expr<const Tensor3_christof_numeral_0 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T>,T,Dim12,i,j> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const int  N,
const Index< i, Dim12 >  ,
const Index< j, Dim12 >   
) const

◆ operator()() [15/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim0, int Dim2>
Tensor2_Expr<const Tensor3_christof_numeral_1 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T>,T,Dim0,Dim2,i,j> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim0 >  ,
const int  N,
const Index< j, Dim2 >   
) const

◆ operator()() [16/16]

template<class T, int Tensor_Dim0, int Tensor_Dim12>
template<char i, char j, int Dim0, int Dim2>
Tensor2_Expr<const Tensor3_christof_numeral_1 <const Tensor3_christof<T,Tensor_Dim0,Tensor_Dim12>,T>,T,Dim0,Dim2,i,j> Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::operator() ( const Index< i, Dim0 >  ,
const Index< j, Dim2 >  ,
const int  N 
) const

Member Data Documentation

◆ data

template<class T, int Tensor_Dim0, int Tensor_Dim12>
T Tensor3_christof< T, Tensor_Dim0, Tensor_Dim12 >::data[Tensor_Dim0][(Tensor_Dim12 *(Tensor_Dim12+1))/2]
private

Definition at line 6 of file Tensor3_christof_value.hpp.


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