v0.14.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n > Class Template Reference

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

Collaboration diagram for FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >:
[legend]

Public Member Functions

promote< T, U >::V operator() (const int N1, const int N2, const int N3, const int N4) const
 
 Tensor4_times_Tensor4_2345 (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n > &b)
 

Private Member Functions

template<int Current_Dim0, int Current_Dim1>
promote< T, U >::V eval (const int N1, const int N2, const int N3, const int N4, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
 
template<int Current_Dim1>
promote< T, U >::V eval (const int N1, const int N2, const int N3, const int N4, const Number< 1 > &, const Number< Current_Dim1 > &) const
 
promote< T, U >::V eval (const int N1, const int N2, const int N3, const int N4, const Number< 1 > &, const Number< 1 > &) const
 

Private Attributes

const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, literA
 
const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, niterB
 

Detailed Description

template<class A, class B, class T, class U, int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
class FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >

Definition at line 21 of file Tensor4_times_Tensor4_double.hpp.

Constructor & Destructor Documentation

◆ Tensor4_times_Tensor4_2345()

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::Tensor4_times_Tensor4_2345 ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n > &  b 
)
inline

Definition at line 54 of file Tensor4_times_Tensor4_double.hpp.

57  : iterA(a), iterB(b) {}

Member Function Documentation

◆ eval() [1/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
promote<T, U>::V FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::eval ( const int  N1,
const int  N2,
const int  N3,
const int  N4,
const Number< 1 > &  ,
const Number< 1 > &   
) const
inlineprivate

Definition at line 42 of file Tensor4_times_Tensor4_double.hpp.

44  {
45  return iterA(N1, N2, 0, 0) * iterB(0, 0, N3, N4);
46  }

◆ eval() [2/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
template<int Current_Dim1>
promote<T, U>::V FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::eval ( const int  N1,
const int  N2,
const int  N3,
const int  N4,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
) const
inlineprivate

Definition at line 35 of file Tensor4_times_Tensor4_double.hpp.

37  {
38  return iterA(N1, N2, 0, Current_Dim1 - 1) *
39  iterB(0, Current_Dim1 - 1, N3, N4) +
40  eval(N1, N2, N3, N4, Number<Dim2>(), Number<Current_Dim1 - 1>());
41  }

◆ eval() [3/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
template<int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::eval ( const int  N1,
const int  N2,
const int  N3,
const int  N4,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
) const
inlineprivate

Definition at line 26 of file Tensor4_times_Tensor4_double.hpp.

28  {
29  return iterA(N1, N2, Current_Dim0 - 1, Current_Dim1 - 1) *
30  iterB(Current_Dim0 - 1, Current_Dim1 - 1, N3, N4) +
31  eval(N1, N2, N3, N4, Number<Current_Dim0 - 1>(),
32  Number<Current_Dim1>());
33  }

◆ operator()()

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
promote<T, U>::V FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::operator() ( const int  N1,
const int  N2,
const int  N3,
const int  N4 
) const
inline

Definition at line 49 of file Tensor4_times_Tensor4_double.hpp.

50  {
51  return eval(N1, N2, N3, N4, Number<Dim2>(), Number<Dim3>());
52  }

Member Data Documentation

◆ iterA

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
const Tensor4_Expr<A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l> FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::iterA
private

Definition at line 22 of file Tensor4_times_Tensor4_double.hpp.

◆ iterB

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
const Tensor4_Expr<B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n> FTensor::Tensor4_times_Tensor4_2345< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::iterB
private

Definition at line 23 of file Tensor4_times_Tensor4_double.hpp.


The documentation for this class was generated from the following file:
a
constexpr double a
Definition: approx_sphere.cpp:30
FTensor::Tensor4_times_Tensor4_2345::eval
promote< T, U >::V eval(const int N1, const int N2, const int N3, const int N4, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
Definition: Tensor4_times_Tensor4_double.hpp:26
FTensor::Tensor4_times_Tensor4_2345::iterB
const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n > iterB
Definition: Tensor4_times_Tensor4_double.hpp:23
FTensor::Tensor4_times_Tensor4_2345::iterA
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > iterA
Definition: Tensor4_times_Tensor4_double.hpp:22