v0.14.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FTensor::Tensor4_times_Tensor4_0145< 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_0145< 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_0145 (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor4_Expr< B, U, Dim0, Dim1, Dim4, Dim5, i, j, 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, Dim0, Dim1, Dim4, Dim5, i, j, 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_0145< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >

Definition at line 78 of file Tensor4_times_Tensor4_double.hpp.

Constructor & Destructor Documentation

◆ Tensor4_times_Tensor4_0145()

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_0145< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::Tensor4_times_Tensor4_0145 ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor4_Expr< B, U, Dim0, Dim1, Dim4, Dim5, i, j, m, n > &  b 
)
inline

Definition at line 111 of file Tensor4_times_Tensor4_double.hpp.

114  : 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_0145< 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 99 of file Tensor4_times_Tensor4_double.hpp.

101  {
102  return iterA(0, 0, N1, N2) * iterB(0, 0, N3, N4);
103  }

◆ 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_0145< 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 92 of file Tensor4_times_Tensor4_double.hpp.

94  {
95  return iterA(0, Current_Dim1 - 1, N1, N2) *
96  iterB(0, Current_Dim1 - 1, N3, N4) +
97  eval(N1, N2, N3, N4, Number<Dim2>(), Number<Current_Dim1 - 1>());
98  }

◆ 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_0145< 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 83 of file Tensor4_times_Tensor4_double.hpp.

85  {
86  return iterA(Current_Dim0 - 1, Current_Dim1 - 1, N1, N2) *
87  iterB(Current_Dim0 - 1, Current_Dim1 - 1, N3, N4) +
88  eval(N1, N2, N3, N4, Number<Current_Dim0 - 1>(),
89  Number<Current_Dim1>());
90  }

◆ 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_0145< 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 106 of file Tensor4_times_Tensor4_double.hpp.

107  {
108  return eval(N1, N2, N3, N4, Number<Dim2>(), Number<Dim3>());
109  }

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_0145< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::iterA
private

Definition at line 79 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, Dim0, Dim1, Dim4, Dim5, i, j, m, n> FTensor::Tensor4_times_Tensor4_0145< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5, i, j, k, l, m, n >::iterB
private

Definition at line 80 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_0145::iterA
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > iterA
Definition: Tensor4_times_Tensor4_double.hpp:79
FTensor::Tensor4_times_Tensor4_0145::iterB
const Tensor4_Expr< B, U, Dim0, Dim1, Dim4, Dim5, i, j, m, n > iterB
Definition: Tensor4_times_Tensor4_double.hpp:80
FTensor::Tensor4_times_Tensor4_0145::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:83