v0.14.0
Classes | Enumerations | Functions
FTensor Namespace Reference

JSON compatible output. More...

Classes

class  Christof
 
class  Christof< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim12 >
 
class  Christof< T *, Tensor_Dim0, Tensor_Dim12 >
 
class  Christof_constructor
 
class  Christof_constructor< T, 2, 2 >
 
class  Christof_constructor< T, 3, 3 >
 
class  Christof_constructor< T, 3, 4 >
 
class  Christof_constructor< T, 4, 4 >
 
class  Christof_Expr
 
class  Christof_number_0
 
class  Christof_numeral_0
 
class  Christof_numeral_1
 
class  conj_Tensor2
 
class  d_boundary_Tensor0
 
class  d_boundary_Tensor2_symmetric
 
class  d_one_sided_Tensor1
 
class  d_one_sided_Tensor2_symmetric
 
class  dd_boundary_Tensor0
 
class  dd_boundary_Tensor2_symmetric
 
class  Ddg
 
class  Ddg< PackPtr< T *, I >, Tensor_Dim01, Tensor_Dim23 >
 
class  Ddg< T *, Tensor_Dim01, Tensor_Dim23 >
 
class  Ddg_and_Ddg0213
 
class  Ddg_and_Ddg0321
 
class  Ddg_and_Tensor2_symmetric
 
class  Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim01, i, j, k, l, i, j >
 
class  Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim23, i, j, k, l, k, l >
 
class  Ddg_carat_Ddg_13
 
class  Ddg_carat_Tensor2_symmetric_13
 
class  Ddg_Expr
 
class  Ddg_Expr< Ddg< A, Tensor_Dim01, Tensor_Dim23 >, T, Dim01, Dim23, i, j, k, l >
 
class  Ddg_minus_Ddg
 
class  Ddg_mod_Ddg
 
class  Ddg_mod_Tensor2_symmetric
 
class  Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim01, i, j, k, l, i, j >
 
class  Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim23, i, j, k, l, k, l >
 
class  Ddg_number_0
 
class  Ddg_number_01
 
class  Ddg_number_rhs_0
 
class  Ddg_number_rhs_01
 
class  Ddg_numeral_0
 
class  Ddg_numeral_01
 
class  Ddg_numeral_02
 
class  Ddg_numeral_123
 
class  Ddg_numeral_23
 
class  Ddg_or_Ddg
 
class  Ddg_or_Tensor2_symmetric_13
 
class  Ddg_plus_Ddg
 
class  Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >
 
class  Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >
 
class  Ddg_times_Ddg_0101
 
class  Ddg_times_Ddg_0123
 
class  Ddg_times_Ddg_2301
 
class  Ddg_times_Ddg_2323
 
class  Ddg_times_Dg_01
 
class  Ddg_times_Dg_23
 
class  Ddg_times_Tensor1_0
 
class  Ddg_times_Tensor1_1
 
class  Ddg_times_Tensor1_2
 
class  Ddg_times_Tensor1_3
 
class  Ddg_times_Tensor2_01
 
class  Ddg_times_Tensor2_0_0
 
class  Ddg_times_Tensor2_0_1
 
class  Ddg_times_Tensor2_13
 
class  Ddg_times_Tensor2_1_0
 
class  Ddg_times_Tensor2_1_1
 
class  Ddg_times_Tensor2_23
 
class  Ddg_times_Tensor2_2_0
 
class  Ddg_times_Tensor2_2_1
 
class  Ddg_times_Tensor2_32
 
class  Ddg_times_Tensor2_3_0
 
class  Ddg_times_Tensor2_3_1
 
class  Ddg_times_Tensor2_symmetric_01
 
class  Ddg_times_Tensor2_symmetric_13
 
class  Ddg_times_Tensor2_symmetric_23
 
class  Ddg_times_Tensor4_2301_ijkl
 
class  Ddg_times_Tensor4_2323_klij
 
class  ddTensor0
 
class  ddTensor1
 
class  ddTensor2_symmetric
 
class  Dg
 
class  Dg< PackPtr< T *, I >, Tensor_Dim01, Tensor_Dim2 >
 
class  Dg< T *, Tensor_Dim01, Tensor_Dim2 >
 
class  Dg_and_Dg_02
 
class  Dg_and_Dg_12
 
class  Dg_and_Tensor1
 
class  Dg_and_Tensor2_symmetric
 
class  Dg_constructor
 
class  Dg_constructor< T, 2, 2 >
 
class  Dg_constructor< T, 3, 3 >
 
class  Dg_constructor< T, 4, 3 >
 
class  Dg_constructor< T, 4, 4 >
 
class  Dg_divide_generic
 
class  Dg_Expr
 
class  Dg_Expr< Christof< A, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k >
 
class  Dg_Expr< const Christof< A, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k >
 
class  Dg_Expr< Ddg_number_rhs_0< A, T, N0 >, T, Dim23, Dim1, i, j, k >
 
class  Dg_Expr< Dg< A, Tensor_Dim01, Tensor_Dim2 >, T, Dim01, Dim2, i, j, k >
 
class  Dg_minus_Dg
 
class  Dg_minus_Dg_02
 
class  Dg_number_0
 
class  Dg_number_01
 
class  Dg_number_12
 
class  Dg_number_2
 
class  Dg_number_rhs_0
 
class  Dg_number_rhs_01
 
class  Dg_number_rhs_12
 
class  Dg_number_rhs_2
 
class  Dg_numeral_0
 
class  Dg_numeral_01
 
class  Dg_numeral_12
 
class  Dg_numeral_2
 
class  Dg_or_Dg_02
 
class  Dg_or_Dg_12
 
class  Dg_plus_Dg
 
class  Dg_plus_Dg_10
 
class  Dg_plus_Dg_210
 
class  Dg_times_Dg_01_01
 
class  Dg_times_Dg_12_01
 
class  Dg_times_Dg_12_20
 
class  Dg_times_Dg_2
 
class  Dg_times_generic
 
class  Dg_times_Tensor1_0
 
class  Dg_times_Tensor1_1
 
class  Dg_times_Tensor1_2
 
class  Dg_times_Tensor2_0
 
class  Dg_times_Tensor2_01
 
class  Dg_times_Tensor2_02
 
class  Dg_times_Tensor2_1
 
class  Dg_times_Tensor2_10
 
class  Dg_times_Tensor2_12
 
class  Dg_times_Tensor2_1_0
 
class  Dg_times_Tensor2_1_1
 
class  Dg_times_Tensor2_20
 
class  Dg_times_Tensor2_21
 
class  Dg_times_Tensor2_symmetric_0
 
class  Dg_times_Tensor2_symmetric_01
 
class  Dg_times_Tensor2_symmetric_02
 
class  Dg_times_Tensor2_symmetric_1
 
class  Dg_times_Tensor2_symmetric_10
 
class  Dg_times_Tensor2_symmetric_12
 
class  Dg_times_Tensor2_symmetric_1_0
 
class  Dg_times_Tensor2_symmetric_1_1
 
class  Dg_times_Tensor2_symmetric_20
 
class  Dg_times_Tensor2_symmetric_21
 
class  diffusion_Tensor1
 
class  diffusion_Tensor2_symmetric
 
class  dTensor0
 
class  dTensor1
 
class  dTensor2_symmetric
 
class  generic_minus_Tensor1
 
class  generic_minus_Tensor2_symmetric
 
class  Index
 
class  interpolate_Tensor1
 
class  interpolate_Tensor2_symmetric
 
class  Kronecker_Delta
 Kronecker Delta class. More...
 
class  Kronecker_Delta_symmetric
 Kronecker Delta class symmetric. More...
 
class  Levi_Civita
 Levi_Civita Classes. More...
 
class  minus_Ddg
 
class  minus_Dg
 
class  minus_Tensor1
 
class  minus_Tensor2
 
class  minus_Tensor2_symmetric
 
class  minus_Tensor3
 
class  Number
 
class  PackPtr
 
struct  Permutation2
 
struct  Permutation3
 
struct  Permutation4
 
class  promote
 
class  Riemann
 
class  Riemann< T, 3 >
 
class  Riemann_Expr
 
class  Riemann_Expr< Riemann< A, Dim >, T, Dim, i, j, k, l >
 
class  Riemann_minus_Riemann
 
class  Riemann_plus_Riemann
 
class  Riemann_times_Tensor1_0
 
class  Riemann_times_Tensor1_1
 
class  Riemann_times_Tensor1_2
 
class  Riemann_times_Tensor1_3
 
class  Riemann_times_Tensor2_symmetric_0
 
struct  Sign_of_T3dg_plus_equals_T3dg
 
struct  Sign_of_T3dg_plus_equals_T3dg< false >
 
struct  Sign_of_T3dg_plus_equals_T3dg< true >
 
struct  Sign_of_T4ddg_plus_equals_T4ddg
 
struct  Sign_of_T4ddg_plus_equals_T4ddg< false >
 
struct  Sign_of_T4ddg_plus_equals_T4ddg< true >
 
struct  T3ch_equals_T3dg_Op
 
struct  T3ch_equals_T3dg_Op< 0 >
 
struct  T3ch_equals_T3dg_Op< 1 >
 
struct  T3ch_equals_T3dg_Op< 2 >
 
class  T4Ddg_equals_generic
 
class  T4Ddg_times_equals_generic
 
class  Tensor0
 
class  Tensor0< PackPtr< T *, I > >
 
class  Tensor0< T * >
 
class  Tensor1
 
class  Tensor1< PackPtr< T *, I >, Tensor_Dim >
 
class  Tensor1< T *, Tensor_Dim >
 
class  Tensor1_and_Tensor1
 
class  Tensor1_carat_Tensor1
 
class  Tensor1_constructor
 
class  Tensor1_constructor< T, 1 >
 
class  Tensor1_constructor< T, 2 >
 
class  Tensor1_constructor< T, 3 >
 
class  Tensor1_constructor< T, 4 >
 
class  Tensor1_constructor< T, 6 >
 
class  Tensor1_constructor< T, 8 >
 
class  Tensor1_constructor< T, 9 >
 
class  Tensor1_divide_generic
 
class  Tensor1_Expr
 
class  Tensor1_Expr< Dg_number_rhs_01< A, T, N1, N2 >, T, Dim, i >
 
class  Tensor1_Expr< Dg_number_rhs_12< A, T, N1, N2 >, T, Dim, i >
 
class  Tensor1_Expr< Tensor1< A, Tensor_Dim >, T, Dim, i >
 
class  Tensor1_Expr< Tensor2_number_rhs_0< A, T, N >, T, Dim1, i >
 
class  Tensor1_Expr< Tensor2_number_rhs_1< A, T, N >, T, Dim1, i >
 
class  Tensor1_minus_generic
 
class  Tensor1_minus_Tensor1
 
class  Tensor1_or_Tensor1
 
class  Tensor1_plus_generic
 
class  Tensor1_plus_Tensor1
 
class  Tensor1_times_generic
 
class  Tensor1_times_Tensor1
 
class  Tensor2
 
class  Tensor2< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1 >
 
class  Tensor2< T *, Tensor_Dim0, Tensor_Dim1 >
 
class  Tensor2_and_Tensor1
 
class  Tensor2_and_Tensor1< A, B, T, U, Dim0, Dim1, Dim0, i, j, i >
 
class  Tensor2_and_Tensor1< A, B, T, U, Dim0, Dim1, Dim1, i, j, j >
 
class  Tensor2_antisymmetric
 
class  Tensor2_antisymmetric_constructor
 
class  Tensor2_antisymmetric_constructor< T, 2 >
 
class  Tensor2_antisymmetric_constructor< T, 3 >
 
class  Tensor2_antisymmetric_constructor< T, 4 >
 
class  Tensor2_antisymmetric_Expr
 
class  Tensor2_antisymmetric_Expr< Tensor2_antisymmetric< A, Tensor_Dim >, T, Dim, i, j >
 
class  Tensor2_carat_Tensor2
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim, Dim1, Dim, Dim1, i, j, k, j >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim, Dim1, Dim1, Dim, i, j, j, k >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim1, Dim, Dim, Dim1, j, i, k, j >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim1, Dim, Dim1, Dim, j, i, j, k >
 
class  Tensor2_constructor
 
class  Tensor2_constructor< T, 1, 2, column_major >
 
class  Tensor2_constructor< T, 1, 2, row_major >
 
class  Tensor2_constructor< T, 2, 1, column_major >
 
class  Tensor2_constructor< T, 2, 1, row_major >
 
class  Tensor2_constructor< T, 2, 2, column_major >
 
class  Tensor2_constructor< T, 2, 2, row_major >
 
class  Tensor2_constructor< T, 3, 2, column_major >
 
class  Tensor2_constructor< T, 3, 2, row_major >
 
class  Tensor2_constructor< T, 3, 3, column_major >
 
class  Tensor2_constructor< T, 3, 3, row_major >
 
class  Tensor2_constructor< T, 4, 4, column_major >
 
class  Tensor2_constructor< T, 4, 4, row_major >
 
class  Tensor2_divide_generic
 
class  Tensor2_Expr
 
class  Tensor2_Expr< Dg_number_rhs_0< A, T, N >, T, Dim0, Dim1, i, j >
 
class  Tensor2_Expr< Tensor2< A, Tensor_Dim0, Tensor_Dim1 >, T, Dim0, Dim1, i, j >
 
class  Tensor2_minus_Tensor2
 
class  Tensor2_minus_Tensor2< A, B, T, U, Dim0, Dim1, Dim0, Dim1, i, j, i, j >
 
class  Tensor2_minus_Tensor2< A, B, T, U, Dim0, Dim1, Dim1, Dim0, i, j, j, i >
 
class  Tensor2_minus_Tensor2_symmetric
 
class  Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_number_0
 
class  Tensor2_number_1
 
class  Tensor2_number_rhs_0
 
class  Tensor2_number_rhs_1
 
class  Tensor2_numeral_0
 
class  Tensor2_numeral_1
 
class  Tensor2_or_Tensor2
 
class  Tensor2_or_Tensor2< A, B, T, U, Dim, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_or_Tensor2< A, B, T, U, Dim, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_plus_Tensor2
 
class  Tensor2_plus_Tensor2< A, B, T, U, Dim0, Dim1, Dim0, Dim1, i, j, i, j >
 
class  Tensor2_plus_Tensor2< A, B, T, U, Dim0, Dim1, Dim1, Dim0, i, j, j, i >
 
class  Tensor2_symmetric
 
class  Tensor2_symmetric< PackPtr< T *, I >, Tensor_Dim >
 
class  Tensor2_symmetric< T *, Tensor_Dim >
 
class  Tensor2_symmetric_and_Tensor2_symmetric
 
class  Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_carat_Tensor2
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, k >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, k, j >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, j, i, j, k >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, j, i, k, j >
 
class  Tensor2_symmetric_carat_Tensor2_symmetric
 
class  Tensor2_symmetric_constructor
 
class  Tensor2_symmetric_constructor< T, 1 >
 
class  Tensor2_symmetric_constructor< T, 2 >
 
class  Tensor2_symmetric_constructor< T, 3 >
 
class  Tensor2_symmetric_constructor< T, 4 >
 
class  Tensor2_symmetric_divide_generic
 
class  Tensor2_symmetric_Expr
 
class  Tensor2_symmetric_Expr< Ddg_number_rhs_01< A, T, N0, N1 >, T, Dim, i, j >
 
class  Tensor2_symmetric_Expr< Dg_number_rhs_2< A, T, N >, T, Dim, i, j >
 
class  Tensor2_symmetric_Expr< Tensor2_symmetric< A, Tensor_Dim >, T, Dim, i, j >
 
class  Tensor2_symmetric_minus_generic
 
class  Tensor2_symmetric_minus_Tensor2
 
class  Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_minus_Tensor2_symmetric
 
class  Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_mod_Tensor2_symmetric
 
class  Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_plus_Tensor2
 
class  Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_plus_Tensor2_symmetric
 
class  Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_times_Tensor1
 
class  Tensor2_symmetric_times_Tensor1_0
 
class  Tensor2_symmetric_times_Tensor1_1
 
class  Tensor2_symmetric_times_Tensor2_00
 
class  Tensor2_symmetric_times_Tensor2_01
 
class  Tensor2_symmetric_times_Tensor2_10
 
class  Tensor2_symmetric_times_Tensor2_11
 
class  Tensor2_symmetric_times_Tensor2_symmetric
 
class  Tensor2_symmetric_times_Tensor2_symmetric_00
 
class  Tensor2_symmetric_times_Tensor2_symmetric_01
 
class  Tensor2_symmetric_times_Tensor2_symmetric_10
 
class  Tensor2_symmetric_times_Tensor2_symmetric_11
 
class  Tensor2_times_generic
 
class  Tensor2_times_Tensor1
 
class  Tensor2_times_Tensor1_single
 
class  Tensor2_times_Tensor2
 
class  Tensor2_times_Tensor2_00
 
class  Tensor2_times_Tensor2_01
 
class  Tensor2_times_Tensor2_10
 
class  Tensor2_times_Tensor2_11
 
class  Tensor3
 
class  Tensor3< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >
 
class  Tensor3< T *, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >
 
class  Tensor3_antisymmetric
 
class  Tensor3_antisymmetric< T *, Tensor_Dim0, Tensor_Dim12 >
 
class  Tensor3_antisymmetric_constructor
 
class  Tensor3_antisymmetric_constructor< T, 2, 2 >
 
class  Tensor3_antisymmetric_constructor< T, 3, 3 >
 
class  Tensor3_antisymmetric_constructor< T, 4, 4 >
 
class  Tensor3_antisymmetric_Expr
 
class  Tensor3_antisymmetric_Expr< Tensor3_antisymmetric< A, Dim0, Dim12 >, T, Dim0, Dim12, i, j, k >
 
class  Tensor3_antisymmetric_mod_Tensor1
 
class  Tensor3_antisymmetric_or_Tensor3_antisymmetric
 
class  Tensor3_antisymmetric_plus_Tensor3_antisymmetric
 
class  Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12
 
class  Tensor3_antisymmetric_times_generic
 
class  Tensor3_constructor
 
class  Tensor3_constructor< T, 2, 2, 2 >
 
class  Tensor3_constructor< T, 3, 3, 3 >
 
class  Tensor3_constructor< T, 4, 4, 4 >
 
class  Tensor3_contracted_01
 
class  Tensor3_contracted_02
 
class  Tensor3_contracted_12
 
class  Tensor3_Expr
 
class  Tensor3_Expr< Tensor3< A, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_Expr< Tensor4_number_rhs_2< A, T, N >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_Expr< Tensor4_number_rhs_3< A, T, N >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_minus_Tensor3
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1, Dim2, i, j, k, i, j, k >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2, Dim1, i, j, k, i, k, j >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0, Dim2, i, j, k, j, i, k >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2, Dim0, i, j, k, j, k, i >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0, Dim1, i, j, k, k, i, j >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1, Dim0, i, j, k, k, j, i >
 
class  Tensor3_number_0
 
class  Tensor3_number_01
 
class  Tensor3_number_02
 
class  Tensor3_number_1
 
class  Tensor3_number_12
 
class  Tensor3_number_2
 
class  Tensor3_number_rhs_0
 
class  Tensor3_number_rhs_01
 
class  Tensor3_number_rhs_02
 
class  Tensor3_number_rhs_1
 
class  Tensor3_number_rhs_12
 
class  Tensor3_number_rhs_2
 
class  Tensor3_numeral_0
 
class  Tensor3_numeral_01
 
class  Tensor3_numeral_12
 
class  Tensor3_numeral_2
 
class  Tensor3_or_Tensor3
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim0, Dim12, Dim12, Dim0, Dim12, Dim12, i, j, k, i, k, j >
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim02, Dim1, Dim02, Dim02, Dim1, Dim02, i, j, k, j, i, k >
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim02, Dim1, Dim02, Dim02, Dim1, Dim02, i, j, k, k, j, i >
 
class  Tensor3_plus_Tensor3
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1, Dim2, i, j, k, i, j, k >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2, Dim1, i, j, k, i, k, j >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0, Dim2, i, j, k, j, i, k >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2, Dim0, i, j, k, j, k, i >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0, Dim1, i, j, k, k, i, j >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1, Dim0, i, j, k, k, j, i >
 
class  Tensor3_times_Dg
 
class  Tensor3_times_Dg_02_20
 
class  Tensor3_times_Dg_12_12
 
class  Tensor3_times_Tensor1_0
 
class  Tensor3_times_Tensor1_1
 
class  Tensor3_times_Tensor1_2
 
class  Tensor3_times_Tensor2_0_01
 
class  Tensor3_times_Tensor2_0_10
 
class  Tensor3_times_Tensor2_1_01
 
class  Tensor3_times_Tensor2_1_10
 
class  Tensor3_times_Tensor2_2_01
 
class  Tensor3_times_Tensor2_2_10
 
class  Tensor3_times_Tensor2_double
 
class  Tensor3_times_Tensor2_symmetric_0
 
class  Tensor3_times_Tensor2_symmetric_01
 
class  Tensor3_times_Tensor2_symmetric_02
 
class  Tensor3_times_Tensor2_symmetric_1
 
class  Tensor3_times_Tensor2_symmetric_12
 
class  Tensor3_times_Tensor3_12_12
 
class  Tensor3_times_Tensor3_12_21
 
class  Tensor3_times_Tensor3_21
 
class  Tensor3_times_Tensor3_23_23
 
class  Tensor3_times_Tensor3_23_32
 
class  Tensor4
 
class  Tensor4< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 >
 
class  Tensor4< T *, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 >
 
class  Tensor4_constructor
 
class  Tensor4_constructor< T, 2, 2, 2, 2 >
 
class  Tensor4_constructor< T, 3, 3, 3, 3 >
 
class  Tensor4_contracted_01
 
class  Tensor4_contracted_02
 
class  Tensor4_contracted_03
 
class  Tensor4_contracted_12
 
class  Tensor4_contracted_13
 
class  Tensor4_contracted_23
 
class  Tensor4_Expr
 
class  Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >
 
class  Tensor4_minus_Tensor4
 
class  Tensor4_number_2
 
class  Tensor4_number_3
 
class  Tensor4_number_rhs_2
 
class  Tensor4_number_rhs_3
 
class  Tensor4_numeral_2
 
class  Tensor4_numeral_3
 
class  Tensor4_or_Tensor4
 
class  Tensor4_or_Tensor4< A, B, T, U, Dim01, Dim01, Dim23, Dim23, Dim01, Dim01, Dim23, Dim23, i, j, k, l, j, i, l, k >
 
class  Tensor4_plus_Tensor4
 
class  Tensor4_times_Dg_01
 
class  Tensor4_times_Dg_23
 
class  Tensor4_times_Tensor1_0
 
class  Tensor4_times_Tensor1_1
 
class  Tensor4_times_Tensor1_2
 
class  Tensor4_times_Tensor1_3
 
class  Tensor4_times_Tensor2_03
 
class  Tensor4_times_Tensor2_0_0
 
class  Tensor4_times_Tensor2_0_1
 
class  Tensor4_times_Tensor2_13
 
class  Tensor4_times_Tensor2_1_0
 
class  Tensor4_times_Tensor2_1_1
 
class  Tensor4_times_Tensor2_23
 
class  Tensor4_times_Tensor2_2_0
 
class  Tensor4_times_Tensor2_2_1
 
class  Tensor4_times_Tensor2_30
 
class  Tensor4_times_Tensor2_32
 
class  Tensor4_times_Tensor2_3_0
 
class  Tensor4_times_Tensor2_3_1
 
class  Tensor4_times_Tensor2_double
 
class  Tensor4_times_Tensor2_single
 
class  Tensor4_times_Tensor2_symmetric_01
 
class  Tensor4_times_Tensor2_symmetric_02
 
class  Tensor4_times_Tensor2_symmetric_03
 
class  Tensor4_times_Tensor2_symmetric_23
 
class  Tensor4_times_Tensor2_symmetric_30
 
class  Tensor4_times_Tensor2_symmetric_32
 
class  Tensor4_times_Tensor3_12_21
 
class  Tensor4_times_Tensor3_23
 
class  Tensor4_times_Tensor3_triple
 
class  Tensor4_times_Tensor4_0145
 
class  Tensor4_times_Tensor4_2345
 
class  transform_Tensor2
 

Enumerations

enum  Layout { column_major, row_major }
 

Functions

template<class A , class B , class T , class U , char i, char j, char k>
auto cross (const Tensor1_Expr< A, T, 3, i > &a, const Tensor1_Expr< B, U, 3, j > &b, const Index< k, 3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0321< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator&& (const Ddg_Expr< A, T, Dim, Dim, i, k, j, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0213< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator&& (const Ddg_Expr< A, T, Dim, Dim, i, k, l, j > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator& (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator& (const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b, const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim23, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_carat_Ddg_13< A, B, T, U, Dim, Dim23, i, j, k, l, m, n >, typename promote< T, U >::V, Dim, Dim23, i, k, m, noperator^ (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim23, j, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator^ (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator^ (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< Ddg_minus_Ddg< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator- (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_mod_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator% (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator% (const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b, const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Ddg_or_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, j, loperator|| (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator| (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator| (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim01_1, int Dim23_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
Ddg_Expr< Ddg_plus_Ddg< A, B, T, U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator+ (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Ddg_Expr< B, U, Dim01_1, Dim23_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
auto operator* (const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &a, const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2301< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &a, const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_0123< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &a, const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2323< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &a, const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator* (const U &d0, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator/ (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, loperator* (const Tensor1_Expr< B, U, Dim23, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, koperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, koperator* (const Tensor1_Expr< B, U, Dim23, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, loperator* (const Tensor1_Expr< B, U, Dim01, i > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, loperator* (const Tensor1_Expr< B, U, Dim01, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, koperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, koperator* (const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim1, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &a, const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, loperator* (const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &a, const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, loperator* (const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &b, const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &a)
 
template<class A , class T , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< minus_Ddg< A, T, Dim01, Dim23, i, j, k, l >, T, Dim01, Dim23, i, j, k, loperator- (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, j, koperator&& (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, i, koperator&& (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Tensor1_Expr< B, U, Dim2, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_divide_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator/ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim1, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim1, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim1, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_minus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator- (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_minus_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, koperator- (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, ioperator|| (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, ioperator|| (const Dg_Expr< A, T, Dim, Dim, j, i, k > &a, const Dg_Expr< B, U, Dim, Dim, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator+ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator+ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_plus_Dg_210< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, koperator+ (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &b, const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim3, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
Ddg_Expr< Dg_times_Dg_2< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim23, i, j, l, moperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim23, Dim2, l, m, k > &b)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator* (const U &d0, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &a, const Tensor1_Expr< B, U, Dim01, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Tensor1_Expr< B, U, Dim01, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a, const Tensor1_Expr< B, U, Dim01, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Tensor1_Expr< B, U, Dim01, k > &b, const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b, const Dg_Expr< A, T, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, j, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, k, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class T , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< minus_Dg< A, T, Dim01, Dim2, i, j, k >, T, Dim01, Dim2, i, j, koperator- (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<typename T >
constexpr bool error_when_instantiated ()
 
template<class T = int, char i, char j, int Dim0, int Dim1>
Tensor2_Expr< Kronecker_Delta< T >, T, Dim0, Dim1, i, jkronecker_delta (const Index< i, Dim0 > &, const Index< j, Dim1 > &)
 Rank 2. More...
 
template<class T = int, char i, int Dim0>
constexpr auto kronecker_delta (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto kronecker_delta (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, int Dim>
Tensor2_symmetric_Expr< Kronecker_Delta_symmetric< T >, T, Dim, i, jkronecker_delta_symmetric (const Index< i, Dim > &, const Index< j, Dim > &)
 
template<class T = int, char i, int Dim0>
constexpr auto kronecker_delta_symmetric (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto kronecker_delta_symmetric (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr std::enable_if<(Dim0<=2 &&Dim1<=2), Tensor2_Expr< Levi_Civita< T >, T, Dim0, Dim1, i, j > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &)
 levi_civita functions to make for easy adhoc use More...
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr std::enable_if<(Dim0<=3 &&Dim1<=3 &&Dim2<=3), Tensor3_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, i, j, k > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &)
 Rank 3. More...
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2)
 
template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &)
 
template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &)
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2)
 
template<class T = int, char k, int Dim2>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &)
 
template<class T = int, char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
constexpr std::enable_if<(Dim0<=4 &&Dim1<=4 &&Dim2<=4 &&Dim3<=4), Tensor4_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 Rank 4. More...
 
template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char i, char j, char l, int Dim0, int Dim1, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char i, char k, char l, int Dim0, int Dim2, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char j, char k, char l, int Dim1, int Dim2, int Dim3>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2, const int &N3)
 
template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char i, char l, int Dim0, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char j, char l, int Dim1, int Dim3>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char k, char l, int Dim2, int Dim3>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2, const int &N3)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2, const int &N3)
 
template<class T = int, char k, int Dim2>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char l, int Dim3>
constexpr auto levi_civita (const int &N0, const int &N1, const int &N2, const Index< l, Dim3 > &)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
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)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_0, int Dim1_1, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
permute (const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &, const Tensor3_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, i1, j1, k1 > &rhs, const int N0, const int N1, const int N2)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_01, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
permute (const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &, const Dg_Expr< B, U, Dim1_01, Dim1_2, i1, j1, k1 > &rhs, const int N0, const int N1, const int N2)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
permute (const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &, const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i1, j1, k1, l1 > &rhs, const int N0, const int N1, const int N2, const int N3)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_01, int Dim1_23, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
permute (const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &, const Ddg_Expr< B, U, Dim1_01, Dim1_23, i1, j1, k1, l1 > &rhs, const int N0, const int N1, const int N2, const int N3)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U & permute_ref (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)
 
 DECLARE_PROMOTE (int, double, double)
 
 DECLARE_PROMOTE (double, int, double)
 
 DECLARE_PROMOTE (int, std::complex< double >, std::complex< double >)
 
 DECLARE_PROMOTE (std::complex< double >, int, std::complex< double >)
 
 DECLARE_PROMOTE (double, std::complex< double >, std::complex< double >)
 
 DECLARE_PROMOTE (std::complex< double >, double, std::complex< double >)
 
 DECLARE_PROMOTE (adouble, double, adouble)
 
 DECLARE_PROMOTE (double, adouble, adouble)
 
 DECLARE_PROMOTE (adouble, int, adouble)
 
 DECLARE_PROMOTE (int, adouble, adouble)
 
 DECLARE_PROMOTE (adtl::adouble, double, adtl::adouble)
 
 DECLARE_PROMOTE (double, adtl::adouble, adtl::adouble)
 
 DECLARE_PROMOTE (adtl::adouble, int, adtl::adouble)
 
 DECLARE_PROMOTE (int, adtl::adouble, adtl::adouble)
 
 DECLARE_PROMOTE (adub, double, adub)
 
 DECLARE_PROMOTE (double, adub, adub)
 
 DECLARE_PROMOTE (adub, int, adub)
 
 DECLARE_PROMOTE (int, adub, adub)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_minus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator- (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Riemann_Expr< B, U, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_plus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator+ (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Riemann_Expr< B, U, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b, const Riemann_Expr< A, T, Dim, i, k, j, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, loperator* (const Tensor1_Expr< B, U, Dim, i > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, loperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, loperator* (const Tensor1_Expr< B, U, Dim, k > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, koperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, koperator* (const Tensor1_Expr< B, U, Dim, l > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , char i, char j, char k, char l>
double operator* (const Riemann_Expr< A, i, j, k, l > &a, const Tensor4_Expr< B, i, j, k, l > &b)
 
template<class A , class B , char i, char j, char k, char l>
double operator* (const Tensor4_Expr< B, i, j, k, l > &b, const Riemann_Expr< A, i, j, k, l > &a)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const d_boundary_Tensor0< T, Dim, i >, typename promote< T, double >::V, Dim, id_boundary (const Tensor0< T * > &a, const Index< i, Dim > index, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz, const Tensor2< bool, Dim, 2 > &boundary)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 0 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 1 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 2 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const dd_boundary_Tensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdd_boundary (const Tensor0< T * > &a, const Index< i, Dim > index3, const Index< j, Dim > index4, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz, const Tensor2< bool, Dim, 2 > &boundary)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdd (const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
 
template<class T >
promote< T, double >::V diffusion (const Tensor0< T * > &a, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const dTensor0< T, Dim, i >, typename promote< T, double >::V, Dim, id (const Tensor0< T * > &a, const Index< i, Dim > index, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
 
template<class T >
promote< T, double >::V interpolate (const Tensor0< T * > &a, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class T , int Dim, char i, int axis>
const Tensor1_Expr< const d_one_sided_Tensor1< T, Dim, i, axis >, typename promote< T, double >::V, Dim, id_one_sided (const Tensor1< T *, Dim > &a, const Number< axis > n1, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim0, int Dim12, char i, char j, char k>
const Dg_Expr< const ddTensor1< T, Dim0, Dim12, i, j, k >, typename promote< T, double >::V, Dim0, Dim12, i, j, kdd (const Tensor1< T *, Dim0 > &a, const Index< k, Dim0 > index0, const Index< i, Dim12 > index1, const Index< j, Dim12 > index2, const Tensor1< int, Dim12 > &d_ijk, const Tensor1< double, Dim12 > &d_xyz)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const diffusion_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, idiffusion (const Tensor1< T *, Dim > &a, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim0, int Dim1, char i, char j>
const Tensor2_Expr< const dTensor1< T, Dim0, Dim1, i, j >, typename promote< T, double >::V, Dim0, Dim1, i, jd (const Tensor1< T *, Dim0 > &a, const Index< i, Dim0 > index1, const Index< j, Dim1 > index2, const Tensor1< int, Dim1 > &d_ijk, const Tensor1< double, Dim1 > &d_xyz)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< generic_minus_Tensor1< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const interpolate_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, iinterpolate (const Tensor1< T *, Dim > &a, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class A , class T , int Dim, char i>
Tensor1_Expr< minus_Tensor1< A, T, Dim, i >, T, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_and_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator& (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_carat_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator^ (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_divide_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator/ (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_addolc_left_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_addolc_left_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_addolc_right_T1 (A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_addolc_right_T1 (A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_plus_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_plus_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_minus_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_minus_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_times_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_times_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_divide_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_divide_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_plus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_plus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_minus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_minus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_times_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_times_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_divide_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_divide_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_plus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_plus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_minus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_minus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_times_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_times_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_divide_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_divide_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void T3dgrhs12_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2>
void T3dgrhs12_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void T3dgrhs01_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2>
void T3dgrhs01_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_minus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_minus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_or_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator|| (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_plus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator* (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i, int Current_Dim>
promote< T, U >::V T1_times_T1 (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< Current_Dim > &)
 
template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V T1_times_T1 (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V operator* (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor1_times_Tensor1< A, B, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor1_Expr< A, T, Dim0, i > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class T , int Tensor_Dim>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor1< T, Tensor_Dim > &t)
 
template<class T , int Tensor_Dim>
std::istream & operator>> (std::istream &is, FTensor::Tensor1< T, Tensor_Dim > &t)
 
template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< conj_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, jconj (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< minus_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, joperator- (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto operator& (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor1_Expr< B, U, Dim0_1, i1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto operator& (const Tensor1_Expr< B, U, Dim0_1, i1 > &b, const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_divide_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator/ (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator- (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_or_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, i0, j0 > operator|| (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_plus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator+ (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const U &d0, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_10< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_11< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_00< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_01< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor4_Expr< Tensor2_times_Tensor2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim3, i, j, k, loperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< transform_Tensor2< A, B, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, jtransform (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, B function)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & Tensor2_ostream_row (std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & Tensor2_istream_row (std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & operator>> (std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t)
 
template<class T , int Tensor_Dim>
std::ostream & Tensor2_antisymmetric_ostream_row (std::ostream &os, const FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::istream & Tensor2_antisymmetric_istream_row (std::istream &is, FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const d_boundary_Tensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, kd_boundary (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim2 > index3, const Tensor1< int, Dim2 > &d_ijk, const Tensor1< double, Dim2 > &d_xyz, const Tensor2< bool, Dim2, 2 > &boundary)
 
template<class T , int Dim, char i, char j, int axis>
const Tensor2_symmetric_Expr< const d_one_sided_Tensor2_symmetric< T, Dim, i, j, axis >, typename promote< T, double >::V, Dim, i, jd_one_sided (const Tensor2_symmetric< T *, Dim > &a, const Number< axis > n1, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const dd_boundary_Tensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, ldd_boundary (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim23 > index3, const Index< l, Dim23 > index4, const Tensor1< int, Dim23 > &d_ijk, const Tensor1< double, Dim23 > &d_xyz, const Tensor2< bool, Dim23, 2 > &boundary)
 
template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, ldd (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim23 > index3, const Index< l, Dim23 > index4, const Tensor1< int, Dim23 > &d_ijk, const Tensor1< double, Dim23 > &d_xyz)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const diffusion_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdiffusion (const Tensor2_symmetric< T *, Dim > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const dTensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, kd (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim2 > index3, const Tensor1< int, Dim2 > &d_ijk, const Tensor1< double, Dim2 > &d_xyz)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< generic_minus_Tensor2_symmetric< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator- (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const interpolate_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jinterpolate (const Tensor2_symmetric< T *, Dim > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class A , class T , int Dim, char i, char j>
Tensor2_symmetric_Expr< minus_Tensor2_symmetric< A, T, Dim, i, j >, T, Dim, i, joperator- (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator& (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b, const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_carat_Tensor2_symmetric< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, k, loperator^ (const Tensor2_symmetric_Expr< A, T, Dim, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_divide_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator/ (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_plus_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_plus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_plus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_minus_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_minus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_minus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_times_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_times_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_times_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_divide_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_divide_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_divide_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim0, int Current_Dim1>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim1>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim0, int Current_Dim1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator- (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator- (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator- (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator- (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator% (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator+ (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator+ (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator+ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator+ (const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b, const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator+ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator* (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_10< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_11< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_00< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_01< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_times_Tensor2_symmetric< A, B, T, U, Dim0, Dim1, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j, k, loperator* (const Tensor2_symmetric_Expr< A, T, Dim0, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim1, k, l > &b)
 
template<class T , int Tensor_Dim>
std::ostream & Tensor2_symmetric_ostream_row (std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t)
 
template<class T , int Tensor_Dim>
std::istream & Tensor2_symmetric_istream_row (std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::istream & operator>> (std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t)
 
template<class A , class T , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< minus_Tensor3< A, T, Dim0, Dim1, Dim2, i, j, k >, T, Dim0, Dim1, Dim2, i, j, koperator- (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_minus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > operator- (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
auto operator|| (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_plus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > operator+ (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim1, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim2, int Dim1, int Dim01, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_02_20< A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim01, i, loperator* (const Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > &a, const Dg_Expr< B, U, Dim01, Dim2, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Dg< A, B, T, U, Dim0, Dim1, Dim, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim, Dim2, i, j, l, moperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, l, k, m > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &b, const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const U &d0, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator/ (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator/ (const U &d0, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, ioperator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, ioperator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, koperator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, koperator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b, const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim04, int Dim13, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_21< A, B, T, U, Dim04, Dim13, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > &b)
 
template<class A , class B , class T , class U , int Dim15, int Dim24, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_32< A, B, T, U, Dim15, Dim24, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, i, joperator* (const Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > &b)
 
template<class A , class B , class T , class U , int Dim14, int Dim25, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_23< A, B, T, U, Dim14, Dim25, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > &a, const Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim23, int Dim4, int Dim5, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Tensor3_21< A, B, T, U, Dim0, Dim1, Dim23, Dim4, Dim5, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim5, i, j, l, moperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > &a, const Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > &b)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & Tensor3_ostream_row (std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & Tensor3_ostream_block (std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & Tensor3_istream_row (std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & Tensor3_istream_block (std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Tensor1_Expr< B, U, Dim, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Tensor3_antisymmetric_or_Tensor3_antisymmetric< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k, joperator|| (const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator+ (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator+ (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &b)
 
template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator* (const U &d0, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, k, i, j > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, j, k, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, j, i, k > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, k, j, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator- (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator|| (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator+ (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, moperator* (const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const U &d0, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator/ (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator/ (const U &d0, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim3, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim3, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim2, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_13< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim4, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, l, i > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, loperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, loperator* (const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, moperator* (const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
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>
auto operator* (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)
 
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>
auto operator* (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)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0001 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1, const int &iterator2)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0010 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0100 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0)
 

Detailed Description

JSON compatible output.

Tensors class implemented by Walter Landry.

JSON compatible output. It only outputs unique, non-zero elments, so a 3x3 antisymmetric matrix only outputs 3 elements.

JSON compatible output. It only outputs unique elements, so a 3x3 symmetric matrix only outputs 6 elements.

JSON compatible output for numbers. If T is something funky (strings, arrays, etc.) then you are going to have a bad time.

JSON compatible input. It does not validate that separators are actually braces '[' or commas ','. It also ignores errors from missing trailing characters. So you could do something like

Tensor3<double,2,2,2> t3_1; std::stringstream ss(":::3:4:::7:8:::::11:12:::13:14"); ss >> t3_1;

The main repository is available under link https://bitbucket.org/wlandry/ftensor. For more details look at reference [44]. See link http://www.wlandry.net/Presentations/FTensor.pdf.

Note this implementation is modified for proposes of MoFEM.

Enumeration Type Documentation

◆ Layout

Enumerator
column_major 
row_major 

Definition at line 10 of file Layout.hpp.

11  {
13  row_major
14  };

Function Documentation

◆ conj()

template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<conj_Tensor2<A, T, Dim0, Dim1, i, j>, T, Dim0, Dim1, i, j> FTensor::conj ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a)

Definition at line 23 of file conj_Tensor2.hpp.

24  {
25  using TensorExpr = conj_Tensor2<A, T, Dim0, Dim1, i, j>;
26  return Tensor2_Expr<TensorExpr, T, Dim0, Dim1, i, j>(TensorExpr(a));
27  }

◆ cross()

template<class A , class B , class T , class U , char i, char j, char k>
auto FTensor::cross ( const Tensor1_Expr< A, T, 3, i > &  a,
const Tensor1_Expr< B, U, 3, j > &  b,
const Index< k, 3 > &   
)

Definition at line 10 of file cross.hpp.

12  {
13  return a * b * levi_civita(Index<i, 3>(), Index<j, 3>(), Index<k, 3>());
14  }

◆ d() [1/3]

template<class T , int Dim, char i>
const Tensor1_Expr<const dTensor0<T, Dim, i>, typename promote<T, double>::V, Dim, i> FTensor::d ( const Tensor0< T * > &  a,
const Index< i, Dim >  index,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz 
)

Definition at line 27 of file dTensor0.hpp.

29  {
30  using Tensor_Expr = dTensor0<T, Dim, i>;
32  Tensor_Expr(a, d_ijk, d_xyz));
33  }

◆ d() [2/3]

template<class T , int Dim0, int Dim1, char i, char j>
const Tensor2_Expr<const dTensor1<T, Dim0, Dim1, i, j>, typename promote<T, double>::V, Dim0, Dim1, i, j> FTensor::d ( const Tensor1< T *, Dim0 > &  a,
const Index< i, Dim0 >  index1,
const Index< j, Dim1 >  index2,
const Tensor1< int, Dim1 > &  d_ijk,
const Tensor1< double, Dim1 > &  d_xyz 
)

Definition at line 60 of file dTensor1.hpp.

63  {
64  using TensorExpr = dTensor1<T, Dim0, Dim1, i, j>;
65  return Tensor2_Expr<TensorExpr, typename promote<T, double>::V, Dim0, Dim1,
66  i, j>(TensorExpr(a, d_ijk, d_xyz));
67  }

◆ d() [3/3]

template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr<const dTensor2_symmetric<T, Dim01, Dim2, i, j, k>, typename promote<T, double>::V, Dim01, Dim2, i, j, k> FTensor::d ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim2 >  index3,
const Tensor1< int, Dim2 > &  d_ijk,
const Tensor1< double, Dim2 > &  d_xyz 
)

Definition at line 31 of file dTensor2_symmetric.hpp.

34  {
35  using TensorExpr = dTensor2_symmetric<T, Dim01, Dim2, i, j, k>;
36  return Dg_Expr<TensorExpr, typename promote<T, double>::V, Dim01, Dim2, i,
37  j, k>(TensorExpr(a, d_ijk, d_xyz));
38  }

◆ d_boundary() [1/2]

template<class T , int Dim, char i>
const Tensor1_Expr<const d_boundary_Tensor0<T, Dim, i>, typename promote<T, double>::V, Dim, i> FTensor::d_boundary ( const Tensor0< T * > &  a,
const Index< i, Dim >  index,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz,
const Tensor2< bool, Dim, 2 > &  boundary 
)

Definition at line 35 of file d_boundary_Tensor0.hpp.

38  {
39  using Tensor_Expr = d_boundary_Tensor0<T, Dim, i>;
41  Tensor_Expr(a, d_ijk, d_xyz, boundary));
42  }

◆ d_boundary() [2/2]

template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr<const d_boundary_Tensor2_symmetric<T, Dim01, Dim2, i, j, k>, typename promote<T, double>::V, Dim01, Dim2, i, j, k> FTensor::d_boundary ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim2 >  index3,
const Tensor1< int, Dim2 > &  d_ijk,
const Tensor1< double, Dim2 > &  d_xyz,
const Tensor2< bool, Dim2, 2 > &  boundary 
)

Definition at line 40 of file d_boundary_Tensor2_symmetric.hpp.

45  {
46  using TensorExpr = d_boundary_Tensor2_symmetric<T, Dim01, Dim2, i, j, k>;
47  return Dg_Expr<TensorExpr, typename promote<T, double>::V, Dim01, Dim2, i,
48  j, k>(TensorExpr(a, d_ijk, d_xyz, boundary));
49  }

◆ d_one_sided() [1/5]

template<class T >
promote<T, double>::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 0 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 10 of file d_one_sided_Tensor0.hpp.

13  {
14  return (a - *(&a - di)) * dx;
15  }

◆ d_one_sided() [2/5]

template<class T >
promote<T, double>::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 1 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 19 of file d_one_sided_Tensor0.hpp.

22  {
23  return (a - *(&a - dj)) * dy;
24  }

◆ d_one_sided() [3/5]

template<class T >
promote<T, double>::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 2 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 28 of file d_one_sided_Tensor0.hpp.

31  {
32  return (a - *(&a - dk)) * dz;
33  }

◆ d_one_sided() [4/5]

template<class T , int Dim, char i, int axis>
const Tensor1_Expr<const d_one_sided_Tensor1<T, Dim, i, axis>, typename promote<T, double>::V, Dim, i> FTensor::d_one_sided ( const Tensor1< T *, Dim > &  a,
const Number< axis >  n1,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 31 of file d_one_sided_Tensor1.hpp.

35  {
36  using TensorExpr = d_one_sided_Tensor1<T, Dim, i, axis>;
38  TensorExpr(a, di, dj, dk, dx, dy, dz));
39  }

◆ d_one_sided() [5/5]

template<class T , int Dim, char i, char j, int axis>
const Tensor2_symmetric_Expr< const d_one_sided_Tensor2_symmetric<T, Dim, i, j, axis>, typename promote<T, double>::V, Dim, i, j> FTensor::d_one_sided ( const Tensor2_symmetric< T *, Dim > &  a,
const Number< axis >  n1,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 35 of file d_one_sided_Tensor2_symmetric.hpp.

39  {
40  using TensorExpr = d_one_sided_Tensor2_symmetric<T, Dim, i, j, axis>;
41  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, double>::V,
42  Dim, i, j>(
43  TensorExpr(a, di, dj, dk, dx, dy, dz));
44  }

◆ dd() [1/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr<const ddTensor0<T, Dim, i, j>, typename promote<T, double>::V, Dim, i, j> FTensor::dd ( const Tensor0< T * > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz 
)
Examples
EshelbianPlasticity.cpp, field_blas.cpp, hcurl_curl_operator.cpp, hdiv_divergence_operator.cpp, mesh_smoothing.cpp, and prism_elements_from_surface.cpp.

Definition at line 33 of file ddTensor0.hpp.

36  {
37  using Tensor_Expr = ddTensor0<T, Dim, i, j>;
38  return Tensor2_symmetric_Expr<Tensor_Expr, typename promote<T, double>::V,
39  Dim, i, j>(Tensor_Expr(a, d_ijk, d_xyz));
40  }

◆ dd() [2/3]

template<class T , int Dim0, int Dim12, char i, char j, char k>
const Dg_Expr<const ddTensor1<T, Dim0, Dim12, i, j, k>, typename promote<T, double>::V, Dim0, Dim12, i, j, k> FTensor::dd ( const Tensor1< T *, Dim0 > &  a,
const Index< k, Dim0 >  index0,
const Index< i, Dim12 >  index1,
const Index< j, Dim12 >  index2,
const Tensor1< int, Dim12 > &  d_ijk,
const Tensor1< double, Dim12 > &  d_xyz 
)

Definition at line 43 of file ddTensor1.hpp.

46  {
47  using TensorExpr = ddTensor1<T, Dim0, Dim12, i, j, k>;
48  return Dg_Expr<TensorExpr, typename promote<T, double>::V, Dim0, Dim12, i,
49  j, k>(TensorExpr(a, d_ijk, d_xyz));
50  }

◆ dd() [3/3]

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr<const ddTensor2_symmetric<T, Dim01, Dim23, i, j, k, l>, typename promote<T, double>::V, Dim01, Dim23, i, j, k, l> FTensor::dd ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim23 >  index3,
const Index< l, Dim23 >  index4,
const Tensor1< int, Dim23 > &  d_ijk,
const Tensor1< double, Dim23 > &  d_xyz 
)

Definition at line 38 of file ddTensor2_symmetric.hpp.

42  {
43  using Tensor_Expr = ddTensor2_symmetric<T, Dim01, Dim23, i, j, k, l>;
44  return Ddg_Expr<Tensor_Expr, typename promote<T, double>::V, Dim01, Dim23,
45  i, j, k, l>(Tensor_Expr(a, d_ijk, d_xyz));
46  }

◆ dd_boundary() [1/2]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr<const dd_boundary_Tensor0<T, Dim, i, j>, typename promote<T, double>::V, Dim, i, j> FTensor::dd_boundary ( const Tensor0< T * > &  a,
const Index< i, Dim >  index3,
const Index< j, Dim >  index4,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz,
const Tensor2< bool, Dim, 2 > &  boundary 
)

Definition at line 81 of file dd_boundary_Tensor0.hpp.

85  {
86  using Tensor_Expr = dd_boundary_Tensor0<T, Dim, i, j>;
87  return Tensor2_symmetric_Expr<Tensor_Expr, typename promote<T, double>::V,
88  Dim, i, j>(
89  Tensor_Expr(a, d_ijk, d_xyz, boundary));
90  }

◆ dd_boundary() [2/2]

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const dd_boundary_Tensor2_symmetric<T, Dim01, Dim23, i, j, k, l>, typename promote<T, double>::V, Dim01, Dim23, i, j, k, l> FTensor::dd_boundary ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim23 >  index3,
const Index< l, Dim23 >  index4,
const Tensor1< int, Dim23 > &  d_ijk,
const Tensor1< double, Dim23 > &  d_xyz,
const Tensor2< bool, Dim23, 2 > &  boundary 
)

Definition at line 100 of file dd_boundary_Tensor2_symmetric.hpp.

106  {
107  using Tensor_Expr
108  = dd_boundary_Tensor2_symmetric<T, Dim01, Dim23, i, j, k, l>;
109  return Ddg_Expr<Tensor_Expr, typename promote<T, double>::V, Dim01, Dim23,
110  i, j, k, l>(Tensor_Expr(a, d_ijk, d_xyz, boundary));
111  }

◆ DECLARE_PROMOTE() [1/18]

FTensor::DECLARE_PROMOTE ( adouble  ,
double  ,
adouble   
)

◆ DECLARE_PROMOTE() [2/18]

FTensor::DECLARE_PROMOTE ( adouble  ,
int  ,
adouble   
)

◆ DECLARE_PROMOTE() [3/18]

FTensor::DECLARE_PROMOTE ( adtl::adouble  ,
double  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [4/18]

FTensor::DECLARE_PROMOTE ( adtl::adouble  ,
int  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [5/18]

FTensor::DECLARE_PROMOTE ( adub  ,
double  ,
adub   
)

◆ DECLARE_PROMOTE() [6/18]

FTensor::DECLARE_PROMOTE ( adub  ,
int  ,
adub   
)

◆ DECLARE_PROMOTE() [7/18]

FTensor::DECLARE_PROMOTE ( double  ,
adouble  ,
adouble   
)

◆ DECLARE_PROMOTE() [8/18]

FTensor::DECLARE_PROMOTE ( double  ,
adtl::adouble  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [9/18]

FTensor::DECLARE_PROMOTE ( double  ,
adub  ,
adub   
)

◆ DECLARE_PROMOTE() [10/18]

FTensor::DECLARE_PROMOTE ( double  ,
int  ,
double   
)

◆ DECLARE_PROMOTE() [11/18]

FTensor::DECLARE_PROMOTE ( double  ,
std::complex< double ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [12/18]

FTensor::DECLARE_PROMOTE ( int  ,
adouble  ,
adouble   
)

◆ DECLARE_PROMOTE() [13/18]

FTensor::DECLARE_PROMOTE ( int  ,
adtl::adouble  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [14/18]

FTensor::DECLARE_PROMOTE ( int  ,
adub  ,
adub   
)

◆ DECLARE_PROMOTE() [15/18]

FTensor::DECLARE_PROMOTE ( int  ,
double  ,
double   
)

◆ DECLARE_PROMOTE() [16/18]

FTensor::DECLARE_PROMOTE ( int  ,
std::complex< double ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [17/18]

FTensor::DECLARE_PROMOTE ( std::complex< double ,
double  ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [18/18]

FTensor::DECLARE_PROMOTE ( std::complex< double ,
int  ,
std::complex< double  
)

◆ diffusion() [1/3]

template<class T >
promote<T, double>::V FTensor::diffusion ( const Tensor0< T * > &  a,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

Definition at line 10 of file diffusion_Tensor0.hpp.

12  {
13  return ((*(&a + di) - 2 * a + *(&a - di))
14  + (*(&a + dj) - 2 * a + *(&a - dj))
15  + (*(&a + dk) - 2 * a + *(&a - dk))
16  + ((*(&a + di + dj) + *(&a + di - dj) + *(&a - di + dj)
17  + *(&a - di - dj) - 4 * a)
18  + (*(&a + di + dk) + *(&a + di - dk) + *(&a - di + dk)
19  + *(&a - di - dk) - 4 * a)
20  + (*(&a + dj + dk) + *(&a + dj - dk) + *(&a - dj + dk)
21  + *(&a - dj - dk) - 4 * a))
22  / (std::sqrt(2.0)))
23  * dx * dx;
24  }

◆ diffusion() [2/3]

template<class T , int Dim, char i>
const Tensor1_Expr<const diffusion_Tensor1<T, Dim, i>, typename promote<T, double>::V, Dim, i> FTensor::diffusion ( const Tensor1< T *, Dim > &  a,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

Definition at line 41 of file diffusion_Tensor1.hpp.

43  {
44  using Tensor_Expr = diffusion_Tensor1<T, Dim, i>;
46  Tensor_Expr(a, di, dj, dk, dx));
47  }

◆ diffusion() [3/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr<const diffusion_Tensor2_symmetric<T, Dim, i, j>, typename promote<T, double>::V, Dim, i, j> FTensor::diffusion ( const Tensor2_symmetric< T *, Dim > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

Definition at line 42 of file diffusion_Tensor2_symmetric.hpp.

45  {
46  using Tensor_Expr = diffusion_Tensor2_symmetric<T, Dim, i, j>;
47  return Tensor2_symmetric_Expr<Tensor_Expr, typename promote<T, double>::V,
48  Dim, i, j>(Tensor_Expr(a, di, dj, dk, dx));
49  }

◆ error_when_instantiated()

template<typename T >
constexpr bool FTensor::error_when_instantiated ( )
constexpr

Definition at line 7 of file error_when_instantiated.hpp.

8  {
9  return false;
10  }

◆ interpolate() [1/3]

template<class T >
promote<T, double>::V FTensor::interpolate ( const Tensor0< T * > &  a,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 13 of file interpolate_Tensor0.hpp.

16  {
17  return conjugate[0] * conjugate[1] * conjugate[2]
18  * (*(&a + di * i0 + dj * j0 + dk * k0))
19  + distance[0] * conjugate[1] * conjugate[2]
20  * (*(&a + di * (i0 + 1) + dj * (j0) + dk * (k0)))
21  + conjugate[0] * distance[1] * conjugate[2]
22  * (*(&a + di * (i0) + dj * (j0 + 1) + dk * (k0)))
23  + distance[0] * distance[1] * conjugate[2]
24  * (*(&a + di * (i0 + 1) + dj * (j0 + 1) + dk * (k0)))
25  + conjugate[0] * conjugate[1] * distance[2]
26  * (*(&a + di * (i0) + dj * (j0) + dk * (k0 + 1)))
27  + distance[0] * conjugate[1] * distance[2]
28  * (*(&a + di * (i0 + 1) + dj * (j0) + dk * (k0 + 1)))
29  + conjugate[0] * distance[1] * distance[2]
30  * (*(&a + di * (i0) + dj * (j0 + 1) + dk * (k0 + 1)))
31  + distance[0] * distance[1] * distance[2]
32  * (*(&a + di * (i0 + 1) + dj * (j0 + 1) + dk * (k0 + 1)));
33  }

◆ interpolate() [2/3]

template<class T , int Dim, char i>
const Tensor1_Expr<const interpolate_Tensor1<T, Dim, i>, typename promote<T, double>::V, Dim, i> FTensor::interpolate ( const Tensor1< T *, Dim > &  a,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 49 of file interpolate_Tensor1.hpp.

53  {
54  using Tensor_Expr = interpolate_Tensor1<T, Dim, i>;
56  Tensor_Expr(a, di, dj, dk, i0, j0, k0, distance, conjugate));
57  }

◆ interpolate() [3/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr<const interpolate_Tensor2_symmetric<T, Dim, i, j>, typename promote<T, double>::V, Dim, i, j> FTensor::interpolate ( const Tensor2_symmetric< T *, Dim > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 55 of file interpolate_Tensor2_symmetric.hpp.

59  {
60  using Tensor_Expr = interpolate_Tensor2_symmetric<T, Dim, i, j>;
61  return Tensor2_symmetric_Expr<Tensor_Expr, typename promote<T, double>::V,
62  Dim, i, j>(
63  Tensor_Expr(a, di, dj, dk, i0, j0, k0, distance, conjugate));
64  }

◆ kronecker_delta() [1/3]

template<class T = int, char i, char j, int Dim0, int Dim1>
Tensor2_Expr<Kronecker_Delta<T>, T, Dim0, Dim1, i, j> FTensor::kronecker_delta ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &   
)

Rank 2.

Examples
ContactOps.hpp.

Definition at line 81 of file Kronecker_Delta.hpp.

81  {
82  return Kronecker_Delta<T>()(Index<i, Dim0>(), Index<j, Dim1>());
83 }

◆ kronecker_delta() [2/3]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::kronecker_delta ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 86 of file Kronecker_Delta.hpp.

86  {
87  return Kronecker_Delta<T>()(Index<i, Dim0>(), N1);
88 }

◆ kronecker_delta() [3/3]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::kronecker_delta ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 91 of file Kronecker_Delta.hpp.

91  {
92  return Kronecker_Delta<T>()(N0, Index<j, Dim1>());
93 }

◆ kronecker_delta_symmetric() [1/3]

template<class T = int, char i, char j, int Dim>
Tensor2_symmetric_Expr<Kronecker_Delta_symmetric<T>, T, Dim, i, j> FTensor::kronecker_delta_symmetric ( const Index< i, Dim > &  ,
const Index< j, Dim > &   
)

Definition at line 97 of file Kronecker_Delta.hpp.

97  {
98  return Kronecker_Delta_symmetric<T>()(Index<i, Dim>(), Index<j, Dim>());
99 }

◆ kronecker_delta_symmetric() [2/3]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::kronecker_delta_symmetric ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 102 of file Kronecker_Delta.hpp.

103  {
104  return Kronecker_Delta_symmetric<T>()(Index<i, Dim0>(), N1);
105 }

◆ kronecker_delta_symmetric() [3/3]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::kronecker_delta_symmetric ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 108 of file Kronecker_Delta.hpp.

109  {
110  return Kronecker_Delta_symmetric<T>()(N0, Index<j, Dim1>());
111 }

◆ levi_civita() [1/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr std::enable_if< (Dim0 <= 2 && Dim1 <= 2), Tensor2_Expr<Levi_Civita<T>, T, Dim0, Dim1, i, j> >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &   
)
constexpr

levi_civita functions to make for easy adhoc use

Normally, this should go in is own file levi_civita.hpp, but not all filesystems can handle files that differ only in case :( Rank 2

Examples
EshelbianOperators.cpp, hcurl_curl_operator.cpp, lorentz_force.cpp, MagneticElement.hpp, and shallow_wave.cpp.

Definition at line 617 of file Levi_Civita.hpp.

618  {
619  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>());
620  }

◆ levi_civita() [2/25]

template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr std::enable_if< (Dim0 <= 3 && Dim1 <= 3 && Dim2 <= 3), Tensor3_Expr<Levi_Civita<T>, T, Dim0, Dim1, Dim2, i, j, k> >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &   
)
constexpr

Rank 3.

Definition at line 639 of file Levi_Civita.hpp.

641  {
642  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(),
643  Index<k, Dim2>());
644  }

◆ levi_civita() [3/25]

template<class T = int, char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
constexpr std::enable_if< (Dim0 <= 4 && Dim1 <= 4 && Dim2 <= 4 && Dim3 <= 4), Tensor4_Expr<Levi_Civita<T>, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l> >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Rank 4.

Definition at line 694 of file Levi_Civita.hpp.

696  {
697  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(),
699  }

◆ levi_civita() [4/25]

template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 702 of file Levi_Civita.hpp.

704  {
705  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(),
706  Index<k, Dim2>(), N3);
707  }

◆ levi_civita() [5/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2 
)
constexpr

Definition at line 648 of file Levi_Civita.hpp.

649  {
650  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(), N2);
651  }

◆ levi_civita() [6/25]

template<class T = int, char i, char j, char l, int Dim0, int Dim1, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 710 of file Levi_Civita.hpp.

712  {
713  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(), N2,
714  Index<l, Dim3>());
715  }

◆ levi_civita() [7/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 734 of file Levi_Civita.hpp.

736  {
737  return Levi_Civita<T>()(Index<i, Dim0>(), Index<j, Dim1>(), N2, N3);
738  }

◆ levi_civita() [8/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 623 of file Levi_Civita.hpp.

624  {
625  return Levi_Civita<T>()(Index<i, Dim0>(), N1);
626  }

◆ levi_civita() [9/25]

template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 655 of file Levi_Civita.hpp.

656  {
657  return Levi_Civita<T>()(Index<i, Dim0>(), N1, Index<k, Dim2>());
658  }

◆ levi_civita() [10/25]

template<class T = int, char i, char k, char l, int Dim0, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 718 of file Levi_Civita.hpp.

720  {
721  return Levi_Civita<T>()(Index<i, Dim0>(), N1, Index<k, Dim2>(),
722  Index<l, Dim3>());
723  }

◆ levi_civita() [11/25]

template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 741 of file Levi_Civita.hpp.

743  {
744  return Levi_Civita<T>()(Index<i, Dim0>(), N1, Index<k, Dim2>(), N3);
745  }

◆ levi_civita() [12/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2 
)
constexpr

Definition at line 669 of file Levi_Civita.hpp.

670  {
671  return Levi_Civita<T>()(Index<i, Dim0>(), N1, N2);
672  }

◆ levi_civita() [13/25]

template<class T = int, char i, char l, int Dim0, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 755 of file Levi_Civita.hpp.

757  {
758  return Levi_Civita<T>()(Index<i, Dim0>(), N1, N2, Index<l, Dim3>());
759  }

◆ levi_civita() [14/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 776 of file Levi_Civita.hpp.

778  {
779  return Levi_Civita<T>()(Index<i, Dim0>(), N1, N2, N3);
780  }

◆ levi_civita() [15/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 629 of file Levi_Civita.hpp.

630  {
631  return Levi_Civita<T>()(N0, Index<j, Dim1>());
632  }

◆ levi_civita() [16/25]

template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 662 of file Levi_Civita.hpp.

663  {
664  return Levi_Civita<T>()(N0, Index<j, Dim1>(), Index<k, Dim2>());
665  }

◆ levi_civita() [17/25]

template<class T = int, char j, char k, char l, int Dim1, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 726 of file Levi_Civita.hpp.

728  {
729  return Levi_Civita<T>()(N0, Index<j, Dim1>(), Index<k, Dim2>(),
730  Index<l, Dim3>());
731  }

◆ levi_civita() [18/25]

template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 748 of file Levi_Civita.hpp.

750  {
751  return Levi_Civita<T>()(N0, Index<j, Dim1>(), Index<k, Dim2>(), N3);
752  }

◆ levi_civita() [19/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2 
)
constexpr

Definition at line 676 of file Levi_Civita.hpp.

677  {
678  return Levi_Civita<T>()(N0, Index<j, Dim1>(), N2);
679  }

◆ levi_civita() [20/25]

template<class T = int, char j, char l, int Dim1, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 762 of file Levi_Civita.hpp.

764  {
765  return Levi_Civita<T>()(N0, Index<j, Dim1>(), N2, Index<l, Dim3>());
766  }

◆ levi_civita() [21/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 783 of file Levi_Civita.hpp.

785  {
786  return Levi_Civita<T>()(N0, Index<j, Dim1>(), N2, N3);
787  }

◆ levi_civita() [22/25]

template<class T = int, char k, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 683 of file Levi_Civita.hpp.

684  {
685  return Levi_Civita<T>()(N0, N1, Index<k, Dim2>());
686  }

◆ levi_civita() [23/25]

template<class T = int, char k, char l, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 769 of file Levi_Civita.hpp.

771  {
772  return Levi_Civita<T>()(N0, N1, Index<k, Dim2>(), Index<l, Dim3>());
773  }

◆ levi_civita() [24/25]

template<class T = int, char k, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 790 of file Levi_Civita.hpp.

792  {
793  return Levi_Civita<T>()(N0, N1, Index<k, Dim2>(), N3);
794  }

◆ levi_civita() [25/25]

template<class T = int, char l, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 797 of file Levi_Civita.hpp.

799  {
800  return Levi_Civita<T>()(N0, N1, N2, Index<l, Dim3>());
801  }

◆ operator%() [1/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Ddg_mod_Ddg<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator% ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_mod_Ddg.hpp.

35  {
36  using TensorExpr = Ddg_mod_Ddg<A, B, T, U, Dim, i, j, k, l>;
37  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
38  TensorExpr(a, b));
39  }

◆ operator%() [2/6]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr<Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1>, typename promote<T, U>::V, Dim01_0, Dim23_0, i0, j0, k0, l0> FTensor::operator% ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 69 of file Ddg_mod_Tensor2_symmetric.hpp.

71  {
72  using TensorExpr
73  = Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
74  k0, l0, i1, j1>;
75  static_assert(
76  !std::is_empty<TensorExpr>::value,
77  "Indexes or Dimensions are not compatible with the % operator");
78  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01_0, Dim23_0,
79  i0, j0, k0, l0>(TensorExpr(a, b));
80  }

◆ operator%() [3/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Tensor3_antisymmetric_mod_Tensor1<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator% ( const Tensor1_Expr< B, U, Dim, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &  a 
)

Definition at line 50 of file Tensor3_antisymmetric_mod_Tensor1.hpp.

52  {
53  using TensorExpr
54  = Tensor3_antisymmetric_mod_Tensor1<A, B, T, U, Dim, i, j, k, l>;
55  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
56  TensorExpr(a, b));
57  }

◆ operator%() [4/6]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr<Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, i0, j0> FTensor::operator% ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_mod_Tensor2_symmetric.hpp.

65  {
66  using TensorExpr
67  = Tensor2_symmetric_mod_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68  j0, i1, j1>;
69  static_assert(!std::is_empty<TensorExpr>::value,
70  "Index or Dimensions are not compatible with % operator");
71  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
72  i0, j0>(TensorExpr(a, b));
73  }

◆ operator%() [5/6]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr<Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1>, typename promote<T, U>::V, Dim01_0, Dim23_0, i0, j0, k0, l0> FTensor::operator% ( const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b,
const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a 
)

Definition at line 89 of file Ddg_mod_Tensor2_symmetric.hpp.

91  {
92  using TensorExpr
93  = Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
94  k0, l0, i1, j1>;
95  static_assert(
96  !std::is_empty<TensorExpr>::value,
97  "Indexes or Dimensions are not compatible with the % operator");
98  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01_0, Dim23_0,
99  i0, j0, k0, l0>(TensorExpr(a, b));
100  }

◆ operator%() [6/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Tensor3_antisymmetric_mod_Tensor1<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator% ( const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 35 of file Tensor3_antisymmetric_mod_Tensor1.hpp.

37  {
38  using TensorExpr
39  = Tensor3_antisymmetric_mod_Tensor1<A, B, T, U, Dim, i, j, k, l>;
40  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
41  TensorExpr(a, b));
42  }

◆ operator&() [1/10]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr<Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1>, typename promote<T, U>::V, Dim01_0, Dim23_0, i0, j0, k0, l0> FTensor::operator& ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 69 of file Ddg_and_Tensor2_symmetric.hpp.

71  {
72  using TensorExpr
73  = Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
74  k0, l0, i1, j1>;
75  static_assert(
76  !std::is_empty<TensorExpr>::value,
77  "Indexes or Dimensions are not compatible with the & operator");
78  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01_0, Dim23_0,
79  i0, j0, k0, l0>(TensorExpr(a, b));
80  }

◆ operator&() [2/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_and_Tensor1<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator& ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 34 of file Dg_and_Tensor1.hpp.

36  {
37  using TensorExpr = Dg_and_Tensor1<A, B, T, U, Dim01, Dim2, i, j, k>;
38  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
39  TensorExpr(a, b));
40  }

◆ operator&() [3/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_and_Tensor2_symmetric<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator& ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b 
)

Definition at line 34 of file Dg_and_Tensor2_symmetric.hpp.

36  {
37  using TensorExpr
38  = Dg_and_Tensor2_symmetric<A, B, T, U, Dim01, Dim2, i, j, k>;
39  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
40  TensorExpr(a, b));
41  }

◆ operator&() [4/10]

template<class A , class B , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_and_Tensor1<A, B, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator& ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 29 of file Tensor1_and_Tensor1.hpp.

31  {
32  using TensorExpr = Tensor1_and_Tensor1<A, B, T, U, Dim, i>;
34  TensorExpr(a, b));
35  }

◆ operator&() [5/10]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto FTensor::operator& ( const Tensor1_Expr< B, U, Dim0_1, i1 > &  b,
const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a 
)

Definition at line 82 of file Tensor2_and_Tensor1.hpp.

84  {
85  using TensorExpr
86  = Tensor2_and_Tensor1<A, B, T, U, Dim0_0, Dim1_0, Dim0_1, i0, j0, i1>;
87  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
88  i0, j0>(TensorExpr(a, b));
89  }

◆ operator&() [6/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_and_Tensor1<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator& ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 48 of file Dg_and_Tensor1.hpp.

50  {
51  using TensorExpr = Dg_and_Tensor1<A, B, T, U, Dim01, Dim2, i, j, k>;
52  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
53  TensorExpr(a, b));
54  }

◆ operator&() [7/10]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto FTensor::operator& ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor1_Expr< B, U, Dim0_1, i1 > &  b 
)

Definition at line 62 of file Tensor2_and_Tensor1.hpp.

64  {
65  using TensorExpr
66  = Tensor2_and_Tensor1<A, B, T, U, Dim0_0, Dim1_0, Dim0_1, i0, j0, i1>;
67  static_assert(
68  !std::is_empty<TensorExpr>::value,
69  "Indexes or Dimensions are not compatible with the & operator");
70  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
71  i0, j0>(TensorExpr(a, b));
72  }

◆ operator&() [8/10]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr<Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, i0, j0> FTensor::operator& ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_and_Tensor2_symmetric.hpp.

65  {
66  using TensorExpr
67  = Tensor2_symmetric_and_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68  j0, i1, j1>;
69  static_assert(
70  !std::is_empty<TensorExpr>::value,
71  "Indexes or Dimensions are not compatible with the & operator");
72  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
73  i0, j0>(TensorExpr(a, b));
74  }

◆ operator&() [9/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_and_Tensor2_symmetric<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator& ( const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 49 of file Dg_and_Tensor2_symmetric.hpp.

51  {
52  using TensorExpr
53  = Dg_and_Tensor2_symmetric<A, B, T, U, Dim01, Dim2, i, j, k>;
54  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
55  TensorExpr(a, b));
56  }

◆ operator&() [10/10]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr<Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1>, typename promote<T, U>::V, Dim01_0, Dim23_0, i0, j0, k0, l0> FTensor::operator& ( const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b,
const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a 
)

Definition at line 89 of file Ddg_and_Tensor2_symmetric.hpp.

91  {
92  using TensorExpr
93  = Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
94  k0, l0, i1, j1>;
95  static_assert(
96  !std::is_empty<TensorExpr>::value,
97  "Indexes or Dimensions are not compatible with the & operator");
98  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01_0, Dim23_0,
99  i0, j0, k0, l0>(TensorExpr(a, b));
100  }

◆ operator&&() [1/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Ddg_and_Ddg0321<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator&& ( const Ddg_Expr< A, T, Dim, Dim, i, k, j, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_and_Ddg.hpp.

35  {
36  using TensorExpr = Ddg_and_Ddg0321<A, B, T, U, Dim, i, j, k, l>;
37  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
38  TensorExpr(a, b));
39  }

◆ operator&&() [2/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Ddg_and_Ddg0213<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator&& ( const Ddg_Expr< A, T, Dim, Dim, i, k, l, j > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 67 of file Ddg_and_Ddg.hpp.

69  {
70  using TensorExpr = Ddg_and_Ddg0213<A, B, T, U, Dim, i, j, k, l>;
71  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
72  TensorExpr(a, b));
73  }

◆ operator&&() [3/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr<Dg_and_Dg_12<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, j, k> FTensor::operator&& ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, i, k, j > &  b 
)

Definition at line 32 of file Dg_and_Dg.hpp.

34  {
35  using TensorExpr = Dg_and_Dg_12<A, B, T, U, Dim, i, j, k>;
36  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
37  Dim, Dim, i, j, k>(TensorExpr(a, b));
38  }

◆ operator&&() [4/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr<Dg_and_Dg_02<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, j, i, k> FTensor::operator&& ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 67 of file Dg_and_Dg.hpp.

69  {
70  using TensorExpr = Dg_and_Dg_02<A, B, T, U, Dim, i, j, k>;
71  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
72  Dim, Dim, j, i, k>(TensorExpr(a, b));
73  }

◆ operator*() [1/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::operator* ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b 
)

Definition at line 79 of file Ddg_times_Ddg.hpp.

80  {
81  return T4ddg_times_T4ddg_0213(a, b, Number<Dim>(), Number<Dim>(),
82  Number<Dim>(), Number<Dim>());
83 }

◆ operator*() [2/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr<Ddg_times_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 58 of file Ddg_times_Tensor2_symmetric.hpp.

60  {
61  using TensorExpr
62  = Ddg_times_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
63  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
64  TensorExpr(a, b));
65  }

◆ operator*() [3/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &  b 
)
inline

Definition at line 115 of file Ddg_times_Dg.hpp.

116  {
117  using TensorExpr =
118  Ddg_times_Dg_01<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
119  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim23, Dim4, k, l, m>(
120  TensorExpr(a, b));
121 }

◆ operator*() [4/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &  b 
)
inline

Definition at line 54 of file Ddg_times_Dg.hpp.

55  {
56  using TensorExpr =
57  Ddg_times_Dg_23<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
58  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim4, i, j, m>(
59  TensorExpr(a, b));
60 }

◆ operator*() [5/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim01, i > &  b 
)

Definition at line 147 of file Ddg_times_Tensor1.hpp.

148  {
149  using TensorExpr = Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>;
150  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, j, k, l>(
151  TensorExpr(a, b));
152 }

◆ operator*() [6/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim01, j > &  b 
)

Definition at line 200 of file Ddg_times_Tensor1.hpp.

201  {
202  using TensorExpr = Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>;
203  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, k, l>(
204  TensorExpr(a, b));
205 }

◆ operator*() [7/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, j, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim23, k > &  b 
)

Definition at line 41 of file Ddg_times_Tensor1.hpp.

42  {
43  using TensorExpr = Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>;
44  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, l>(
45  TensorExpr(a, b));
46 }

◆ operator*() [8/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, j, k> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim23, l > &  b 
)

Definition at line 94 of file Ddg_times_Tensor1.hpp.

95  {
96  using TensorExpr = Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>;
97  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k>(
98  TensorExpr(a, b));
99 }

◆ operator*() [9/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b 
)

Definition at line 199 of file Ddg_times_Tensor2.hpp.

200  {
201  using TensorExpr =
202  Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
203  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
204  k, l>(TensorExpr(a, b));
205  }

◆ operator*() [10/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m>, typename promote<T, U>::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &  b 
)
inline

Definition at line 776 of file Ddg_times_Tensor2.hpp.

778  {
779  typedef const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j,
780  k, l, m>
781  TensorExpr;
782  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim01,
783  Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
784  }

◆ operator*() [11/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m>, typename promote<T, U>::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &  b 
)
inline

Definition at line 843 of file Ddg_times_Tensor2.hpp.

845  {
846  typedef const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j,
847  k, l, m>
848  TensorExpr;
849  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
850  Dim23, Dim1, m, j, k, l>(TensorExpr(a, b));
851  }

◆ operator*() [12/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &  b 
)
inline

Definition at line 642 of file Ddg_times_Tensor2.hpp.

644  {
645  typedef const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j,
646  k, l, m>
647  TensorExpr;
648  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
649  Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
650  }

◆ operator*() [13/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &  b 
)
inline

Definition at line 709 of file Ddg_times_Tensor2.hpp.

711  {
712  typedef const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j,
713  k, l, m>
714  TensorExpr;
715  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
716  Dim23, Dim23, i, m, k, l>(TensorExpr(a, b));
717  }

◆ operator*() [14/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, k> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &  b 
)

Definition at line 302 of file Ddg_times_Tensor2.hpp.

304  {
305  using TensorExpr
306  = Ddg_times_Tensor2_13<A, B, T, U, Dim01, Dim23, i, j, k, l>;
307  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i,
308  k>(TensorExpr(a, b));
309  }

◆ operator*() [15/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &  b 
)

Definition at line 58 of file Ddg_times_Tensor2.hpp.

60  {
61  using TensorExpr
62  = Ddg_times_Tensor2_23<A, B, T, U, Dim01, Dim23, i, j, k, l>;
63  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
64  i, j>(TensorExpr(a, b));
65  }

◆ operator*() [16/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &  b 
)

Definition at line 132 of file Ddg_times_Tensor2.hpp.

134  {
135  using TensorExpr
136  = Ddg_times_Tensor2_32<A, B, T, U, Dim01, Dim23, i, j, k, l>;
137  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
138  i, j>(TensorExpr(a, b));
139  }

◆ operator*() [17/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &  b 
)
inline

Definition at line 374 of file Ddg_times_Tensor2.hpp.

376  {
377  typedef const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
378  k, l, m>
379  TensorExpr;
380  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
381  Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
382  }

◆ operator*() [18/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &  b 
)
inline

Definition at line 575 of file Ddg_times_Tensor2.hpp.

577  {
578  typedef const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
579  k, l, m>
580  TensorExpr;
581  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
582  Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
583  }

◆ operator*() [19/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &  b 
)
inline

Definition at line 508 of file Ddg_times_Tensor2.hpp.

510  {
511  typedef const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
512  k, l, m>
513  TensorExpr;
514  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
515  Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
516  }

◆ operator*() [20/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &  b 
)
inline

Definition at line 441 of file Ddg_times_Tensor2.hpp.

443  {
444  typedef const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
445  k, l, m>
446  TensorExpr;
447  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
448  Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
449  }

◆ operator*() [21/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b 
)

Definition at line 132 of file Ddg_times_Tensor2_symmetric.hpp.

134  {
135  using TensorExpr
136  = Ddg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
137  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
138  k, l>(TensorExpr(a, b));
139  }

◆ operator*() [22/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &  b 
)

Definition at line 207 of file Ddg_times_Tensor2_symmetric.hpp.

209  {
210  using TensorExpr
211  = Ddg_times_Tensor2_symmetric_23<A, B, T, U, Dim01, Dim23, i, j, k, l>;
212  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
213  i, j>(TensorExpr(a, b));
214  }

◆ operator*() [23/392]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 11 of file Ddg_times_generic.hpp.

12  {
13  auto TensorExpr
14  = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
15  return a(N1, N2, N3, N4) * d0;
16  };
17  return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
18  Dim23, i, j, k, l>(TensorExpr);
19  }

◆ operator*() [24/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr<Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n>, typename promote<T, U>::V, Dim01, Dim01, Dim2, Dim3, i, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &  a,
const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &  b 
)

Definition at line 57 of file Ddg_times_Tensor4.hpp.

58  {
59  using TensorExpr = Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2,
60  Dim3, i, j, k, l, m, n>;
61  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01, Dim2,
62  Dim3, i, j, k, l>(TensorExpr(a, b));
63 }

◆ operator*() [25/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b 
)

Definition at line 229 of file Ddg_times_Tensor2.hpp.

230  {
231  using TensorExpr =
232  Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
233  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
234  k, l>(TensorExpr(a, b));
235  }

◆ operator*() [26/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr<Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n>, typename promote<T, U>::V, Dim0, Dim1, Dim23, Dim23, i, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &  a,
const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &  b 
)

Definition at line 131 of file Ddg_times_Tensor4.hpp.

132  {
133  using TensorExpr = Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0,
134  Dim1, i, j, k, l, m, n>;
135  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim23,
136  Dim23, i, j, k, l>(TensorExpr(a, b));
137 }

◆ operator*() [27/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr<Ddg_times_Ddg_2323<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>, typename promote<T, U>::V, Dim01, Dim23, i, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &  a,
const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &  b 
)

Definition at line 305 of file Ddg_times_Ddg.hpp.

306  {
307  using TensorExpr =
308  Ddg_times_Ddg_2323<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>;
309  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
310  l>(TensorExpr(a, b));
311 }

◆ operator*() [28/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr<Ddg_times_Ddg_2301<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>, typename promote<T, U>::V, Dim01, Dim23, i, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &  a,
const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &  b 
)

Definition at line 189 of file Ddg_times_Ddg.hpp.

190  {
191  using TensorExpr =
192  Ddg_times_Ddg_2301<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>;
193  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
194  l>(TensorExpr(a, b));
195 }

◆ operator*() [29/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr<Ddg_times_Ddg_0123<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>, typename promote<T, U>::V, Dim01, Dim23, i, j, k, l> FTensor::operator* ( const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &  a,
const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &  b 
)

Definition at line 247 of file Ddg_times_Ddg.hpp.

248  {
249  using TensorExpr =
250  Ddg_times_Ddg_0123<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>;
251  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
252  l>(TensorExpr(a, b));
253 }

◆ operator*() [30/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &  a,
const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &  b 
)
inline

Definition at line 132 of file Ddg_times_Ddg.hpp.

133  {
134  using TensorExpr =
135  Ddg_times_Ddg_0101<A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n>;
136  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
137  l>(TensorExpr(a, b));
138 }

◆ operator*() [31/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::operator* ( const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 40 of file Riemann_times_Ddg.hpp.

43  {
44  return operator*(a, b);
45  }

◆ operator*() [32/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::operator* ( const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b,
const Riemann_Expr< A, T, Dim, i, k, j, l > &  a 
)

Definition at line 78 of file Riemann_times_Ddg.hpp.

81  {
82  return operator*(a, b);
83  }

◆ operator*() [33/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_12<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 309 of file Dg_times_Tensor2_symmetric.hpp.

311  {
312  using TensorExpr = Dg_times_Tensor2_symmetric_12<A, B, T, U, Dim, i, j, k>;
314  TensorExpr(a, b));
315  }

◆ operator*() [34/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_21<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

Definition at line 374 of file Dg_times_Tensor2_symmetric.hpp.

376  {
377  using TensorExpr = Dg_times_Tensor2_symmetric_21<A, B, T, U, Dim, i, j, k>;
379  TensorExpr(a, b));
380  }

◆ operator*() [35/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_02<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 439 of file Dg_times_Tensor2_symmetric.hpp.

441  {
442  using TensorExpr = Dg_times_Tensor2_symmetric_02<A, B, T, U, Dim, i, j, k>;
444  TensorExpr(a, b));
445  }

◆ operator*() [36/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_20<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, k, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 504 of file Dg_times_Tensor2_symmetric.hpp.

506  {
507  using TensorExpr = Dg_times_Tensor2_symmetric_20<A, B, T, U, Dim, i, j, k>;
509  TensorExpr(a, b));
510  }

◆ operator*() [37/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr<Dg_times_Dg_12_01<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &  b 
)

Definition at line 56 of file Dg_times_Dg.hpp.

58  {
59  using TensorExpr = Dg_times_Dg_12_01<A, B, T, U, Dim01, Dim2, i, j, k, l>;
60  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
61  l>(TensorExpr(a, b));
62  }

◆ operator*() [38/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim3, i, j, l > &  b 
)

Definition at line 187 of file Dg_times_Dg.hpp.

188  {
189  using TensorExpr =
190  Dg_times_Dg_01_01<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
191  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, k,
192  l>(TensorExpr(a, b));
193  }

◆ operator*() [39/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr<Dg_times_Dg_12_20<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &  b 
)

Definition at line 126 of file Dg_times_Dg.hpp.

128  {
129  using TensorExpr = Dg_times_Dg_12_20<A, B, T, U, Dim01, Dim2, i, j, k, l>;
130  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
131  l>(TensorExpr(a, b));
132  }

◆ operator*() [40/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
Ddg_Expr<Dg_times_Dg_2<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim23, i, j, l, m> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim23, Dim2, l, m, k > &  b 
)

Definition at line 234 of file Dg_times_Dg.hpp.

236  {
237  using TensorExpr
238  = Dg_times_Dg_2<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>;
239  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j,
240  l, m>(TensorExpr(a, b));
241  }

◆ operator*() [41/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr<Dg_times_Tensor1_2<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 46 of file Dg_times_Tensor1.hpp.

48  {
49  using TensorExpr = Dg_times_Tensor1_2<A, B, T, U, Dim01, Dim2, i, j, k>;
50  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
51  i, j>(TensorExpr(a, b));
52  }

◆ operator*() [42/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_12<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b 
)

Definition at line 302 of file Dg_times_Tensor2.hpp.

304  {
305  using TensorExpr = Dg_times_Tensor2_12<A, B, T, U, Dim01, Dim2, i, j, k>;
307  TensorExpr(a, b));
308  }

◆ operator*() [43/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<Dg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim3, i, k, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &  b 
)

Definition at line 171 of file Dg_times_Tensor2.hpp.

173  {
174  using TensorExpr
175  = Dg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
176  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
177  Dim3, i, k, l>(TensorExpr(a, b));
178  }

◆ operator*() [44/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_21<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &  b 
)

Definition at line 369 of file Dg_times_Tensor2.hpp.

371  {
372  using TensorExpr = Dg_times_Tensor2_21<A, B, T, U, Dim01, Dim2, i, j, k>;
374  TensorExpr(a, b));
375  }

◆ operator*() [45/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim3, i, j, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 47 of file Dg_times_Tensor2.hpp.

49  {
50  using TensorExpr
51  = Dg_times_Tensor2_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
52  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
53  TensorExpr(a, b));
54  }

◆ operator*() [46/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<Dg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim3, i, k, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &  b 
)

Definition at line 233 of file Dg_times_Tensor2.hpp.

235  {
236  using TensorExpr
237  = Dg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
238  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
239  Dim3, i, k, l>(TensorExpr(a, b));
240  }

◆ operator*() [47/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim3, i, j, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 109 of file Dg_times_Tensor2.hpp.

111  {
112  using TensorExpr
113  = Dg_times_Tensor2_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
114  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
115  TensorExpr(a, b));
116  }

◆ operator*() [48/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim01, i, k, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &  b 
)

Definition at line 175 of file Dg_times_Tensor2_symmetric.hpp.

177  {
178  using TensorExpr
179  = Dg_times_Tensor2_symmetric_1_0<A, B, T, U, Dim01, Dim2, i, j, k, l>;
180  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
181  Dim01, i, k, l>(TensorExpr(a, b));
182  }

◆ operator*() [49/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim01, i, k, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &  b 
)

Definition at line 240 of file Dg_times_Tensor2_symmetric.hpp.

242  {
243  using TensorExpr
244  = Dg_times_Tensor2_symmetric_1_1<A, B, T, U, Dim01, Dim2, i, j, k, l>;
245  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
246  Dim01, i, k, l>(TensorExpr(a, b));
247  }

◆ operator*() [50/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_symmetric_0<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, j, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &  b 
)

Definition at line 48 of file Dg_times_Tensor2_symmetric.hpp.

50  {
51  using TensorExpr
52  = Dg_times_Tensor2_symmetric_0<A, B, T, U, Dim01, Dim2, i, j, k, l>;
53  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
54  TensorExpr(a, b));
55  }

◆ operator*() [51/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_symmetric_1<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, j, l> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &  b 
)

Definition at line 111 of file Dg_times_Tensor2_symmetric.hpp.

113  {
114  using TensorExpr
115  = Dg_times_Tensor2_symmetric_1<A, B, T, U, Dim01, Dim2, i, j, k, l>;
116  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
117  TensorExpr(a, b));
118  }

◆ operator*() [52/392]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_times_generic<A, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 32 of file Dg_times_generic.hpp.

33  {
34  using TensorExpr = Dg_times_generic<A, T, U, Dim01, Dim2, i, j, k>;
35  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
36  TensorExpr(a, d0));
37  }

◆ operator*() [53/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr<Dg_times_Tensor1_1<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &  a,
const Tensor1_Expr< B, U, Dim01, k > &  b 
)

Definition at line 105 of file Dg_times_Tensor1.hpp.

107  {
108  using TensorExpr = Dg_times_Tensor1_1<A, B, T, U, Dim01, Dim2, i, j, k>;
109  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
110  j>(TensorExpr(a, b));
111  }

◆ operator*() [54/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_02<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b 
)

Definition at line 436 of file Dg_times_Tensor2.hpp.

438  {
439  using TensorExpr = Dg_times_Tensor2_02<A, B, T, U, Dim01, Dim2, i, j, k>;
441  TensorExpr(a, b));
442  }

◆ operator*() [55/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_01<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &  b 
)

Definition at line 570 of file Dg_times_Tensor2.hpp.

572  {
573  using TensorExpr = Dg_times_Tensor2_01<A, B, T, U, Dim01, Dim2, i, j, k>;
575  TensorExpr(a, b));
576  }

◆ operator*() [56/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_10<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &  b 
)

Definition at line 637 of file Dg_times_Tensor2.hpp.

639  {
640  using TensorExpr = Dg_times_Tensor2_10<A, B, T, U, Dim01, Dim2, i, j, k>;
642  TensorExpr(a, b));
643  }

◆ operator*() [57/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &  b 
)

Definition at line 571 of file Dg_times_Tensor2_symmetric.hpp.

573  {
574  using TensorExpr
575  = Dg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim2, i, j, k>;
577  TensorExpr(a, b));
578  }

◆ operator*() [58/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_10<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &  b 
)

Definition at line 641 of file Dg_times_Tensor2_symmetric.hpp.

643  {
644  using TensorExpr
645  = Dg_times_Tensor2_symmetric_10<A, B, T, U, Dim01, Dim2, i, j, k>;
647  TensorExpr(a, b));
648  }

◆ operator*() [59/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr<Dg_times_Tensor1_0<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a,
const Tensor1_Expr< B, U, Dim01, k > &  b 
)

Definition at line 164 of file Dg_times_Tensor1.hpp.

166  {
167  using TensorExpr = Dg_times_Tensor1_0<A, B, T, U, Dim01, Dim2, i, j, k>;
168  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
169  j>(TensorExpr(a, b));
170  }

◆ operator*() [60/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_20<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &  b 
)

Definition at line 503 of file Dg_times_Tensor2.hpp.

505  {
506  using TensorExpr = Dg_times_Tensor2_20<A, B, T, U, Dim01, Dim2, i, j, k>;
508  TensorExpr(a, b));
509  }

◆ operator*() [61/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr<Dg_times_Dg_12_01<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, l> FTensor::operator* ( const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &  a 
)

Definition at line 70 of file Dg_times_Dg.hpp.

72  {
73  using TensorExpr = Dg_times_Dg_12_01<A, B, T, U, Dim01, Dim2, i, j, k, l>;
74  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
75  l>(TensorExpr(a, b));
76  }

◆ operator*() [62/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 127 of file Ddg_times_Dg.hpp.

128  {
129  using TensorExpr =
130  Ddg_times_Dg_01<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
131  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim23, Dim4, k, l, m>(
132  TensorExpr(a, b));
133 }

◆ operator*() [63/392]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim5, k, l> FTensor::operator* ( const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &  b,
const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a 
)

Definition at line 570 of file Tensor3_times_Dg.hpp.

571  {
572  using TensorExpr = Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2,
573  Dim5, i, j, k, l>;
574  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim5, k,
575  l>(TensorExpr(a, b));
576  };

◆ operator*() [64/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr<Dg_times_Dg_12_20<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, l> FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 140 of file Dg_times_Dg.hpp.

142  {
143  using TensorExpr = Dg_times_Dg_12_20<A, B, T, U, Dim01, Dim2, i, j, k, l>;
144  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
145  l>(TensorExpr(a, b));
146  }

◆ operator*() [65/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr<const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim2, Dim3, Dim4, k, l, m> FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 143 of file Tensor4_times_Dg_double.hpp.

144  {
145  typedef const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
146  j, k, l, m>
147  TensorExpr;
148  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, Dim4,
149  k, l, m>(TensorExpr(a, b));
150 }

◆ operator*() [66/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr<const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, i, j, m> FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 71 of file Tensor4_times_Dg_double.hpp.

72  {
73  typedef const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
74  j, k, l, m>
75  TensorExpr;
76  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
77  i, j, m>(TensorExpr(a, b));
78 }

◆ operator*() [67/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 66 of file Ddg_times_Dg.hpp.

67  {
68  using TensorExpr =
69  Ddg_times_Dg_23<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
70  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim4, i, j, m>(
71  TensorExpr(a, b));
72 }

◆ operator*() [68/392]

template<class A , class B , char i, char j, char k, char l>
double FTensor::operator* ( const Riemann_Expr< A, i, j, k, l > &  a,
const Tensor4_Expr< B, i, j, k, l > &  b 
)

Definition at line 12 of file Riemann_times_Tensor4.hpp.

14  {
15  return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
16  + a(0, 1, 0, 1) * b(0, 1, 0, 1) + a(2, 1, 0, 1) * b(2, 1, 0, 1)
17  + a(0, 2, 0, 1) * b(0, 2, 0, 1) + a(1, 2, 0, 1) * b(1, 2, 0, 1)
18  + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
19  + a(0, 1, 0, 2) * b(0, 1, 0, 2) + a(2, 1, 0, 2) * b(2, 1, 0, 2)
20  + a(0, 2, 0, 2) * b(0, 2, 0, 2) + a(1, 2, 0, 2) * b(1, 2, 0, 2)
21  + a(1, 0, 1, 0) * b(1, 0, 1, 0) + a(2, 0, 1, 0) * b(2, 0, 1, 0)
22  + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
23  + a(0, 2, 1, 0) * b(0, 2, 1, 0) + a(1, 2, 1, 0) * b(1, 2, 1, 0)
24  + a(1, 0, 1, 2) * b(1, 0, 1, 2) + a(2, 0, 1, 2) * b(2, 0, 1, 2)
25  + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
26  + a(0, 2, 1, 2) * b(0, 2, 1, 2) + a(1, 2, 1, 2) * b(1, 2, 1, 2)
27  + a(1, 0, 2, 0) * b(1, 0, 2, 0) + a(2, 0, 2, 0) * b(2, 0, 2, 0)
28  + a(0, 1, 2, 0) * b(0, 1, 2, 0) + a(2, 1, 2, 0) * b(2, 1, 2, 0)
29  + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
30  + a(1, 0, 2, 1) * b(1, 0, 2, 1) + a(2, 0, 2, 1) * b(2, 0, 2, 1)
31  + a(0, 1, 2, 1) * b(0, 1, 2, 1) + a(2, 1, 2, 1) * b(2, 1, 2, 1)
32  + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
33 
34  // return a(0,0,0,0)*b(0,0,0,0) + a(1,0,0,0)*b(1,0,0,0) +
35  // a(2,0,0,0)*b(2,0,0,0)
36  // + a(0,1,0,0)*b(0,1,0,0) + a(1,1,0,0)*b(1,1,0,0) +
37  // a(2,1,0,0)*b(2,1,0,0)
38  // + a(0,2,0,0)*b(0,2,0,0) + a(1,2,0,0)*b(1,2,0,0) +
39  // a(2,2,0,0)*b(2,2,0,0)
40  // + a(0,0,0,1)*b(0,0,0,1) + a(1,0,0,1)*b(1,0,0,1) +
41  // a(2,0,0,1)*b(2,0,0,1)
42  // + a(0,1,0,1)*b(0,1,0,1) + a(1,1,0,1)*b(1,1,0,1) +
43  // a(2,1,0,1)*b(2,1,0,1)
44  // + a(0,2,0,1)*b(0,2,0,1) + a(1,2,0,1)*b(1,2,0,1) +
45  // a(2,2,0,1)*b(2,2,0,1)
46  // + a(0,0,0,2)*b(0,0,0,2) + a(1,0,0,2)*b(1,0,0,2) +
47  // a(2,0,0,2)*b(2,0,0,2)
48  // + a(0,1,0,2)*b(0,1,0,2) + a(1,1,0,2)*b(1,1,0,2) +
49  // a(2,1,0,2)*b(2,1,0,2)
50  // + a(0,2,0,2)*b(0,2,0,2) + a(1,2,0,2)*b(1,2,0,2) +
51  // a(2,2,0,2)*b(2,2,0,2)
52  // + a(0,0,1,0)*b(0,0,1,0) + a(1,0,1,0)*b(1,0,1,0) +
53  // a(2,0,1,0)*b(2,0,1,0)
54  // + a(0,1,1,0)*b(0,1,1,0) + a(1,1,1,0)*b(1,1,1,0) +
55  // a(2,1,1,0)*b(2,1,1,0)
56  // + a(0,2,1,0)*b(0,2,1,0) + a(1,2,1,0)*b(1,2,1,0) +
57  // a(2,2,1,0)*b(2,2,1,0)
58  // + a(0,0,1,1)*b(0,0,1,1) + a(1,0,1,1)*b(1,0,1,1) +
59  // a(2,0,1,1)*b(2,0,1,1)
60  // + a(0,1,1,1)*b(0,1,1,1) + a(1,1,1,1)*b(1,1,1,1) +
61  // a(2,1,1,1)*b(2,1,1,1)
62  // + a(0,2,1,1)*b(0,2,1,1) + a(1,2,1,1)*b(1,2,1,1) +
63  // a(2,2,1,1)*b(2,2,1,1)
64  // + a(0,0,1,2)*b(0,0,1,2) + a(1,0,1,2)*b(1,0,1,2) +
65  // a(2,0,1,2)*b(2,0,1,2)
66  // + a(0,1,1,2)*b(0,1,1,2) + a(1,1,1,2)*b(1,1,1,2) +
67  // a(2,1,1,2)*b(2,1,1,2)
68  // + a(0,2,1,2)*b(0,2,1,2) + a(1,2,1,2)*b(1,2,1,2) +
69  // a(2,2,1,2)*b(2,2,1,2)
70  // + a(0,0,2,0)*b(0,0,2,0) + a(1,0,2,0)*b(1,0,2,0) +
71  // a(2,0,2,0)*b(2,0,2,0)
72  // + a(0,1,2,0)*b(0,1,2,0) + a(1,1,2,0)*b(1,1,2,0) +
73  // a(2,1,2,0)*b(2,1,2,0)
74  // + a(0,2,2,0)*b(0,2,2,0) + a(1,2,2,0)*b(1,2,2,0) +
75  // a(2,2,2,0)*b(2,2,2,0)
76  // + a(0,0,2,1)*b(0,0,2,1) + a(1,0,2,1)*b(1,0,2,1) +
77  // a(2,0,2,1)*b(2,0,2,1)
78  // + a(0,1,2,1)*b(0,1,2,1) + a(1,1,2,1)*b(1,1,2,1) +
79  // a(2,1,2,1)*b(2,1,2,1)
80  // + a(0,2,2,1)*b(0,2,2,1) + a(1,2,2,1)*b(1,2,2,1) +
81  // a(2,2,2,1)*b(2,2,2,1)
82  // + a(0,0,2,2)*b(0,0,2,2) + a(1,0,2,2)*b(1,0,2,2) +
83  // a(2,0,2,2)*b(2,0,2,2)
84  // + a(0,1,2,2)*b(0,1,2,2) + a(1,1,2,2)*b(1,1,2,2) +
85  // a(2,1,2,2)*b(2,1,2,2)
86  // + a(0,2,2,2)*b(0,2,2,2) + a(1,2,2,2)*b(1,2,2,2) +
87  // a(2,2,2,2)*b(2,2,2,2);
88  }

◆ operator*() [69/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b 
)

Definition at line 14 of file Riemann_times_Ddg.hpp.

16  {
17  return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
18  + a(0, 1, 0, 1) * b(0, 1, 0, 1) + a(2, 1, 0, 1) * b(2, 1, 0, 1)
19  + a(0, 2, 0, 1) * b(0, 2, 0, 1) + a(1, 2, 0, 1) * b(1, 2, 0, 1)
20  + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
21  + a(0, 1, 0, 2) * b(0, 1, 0, 2) + a(2, 1, 0, 2) * b(2, 1, 0, 2)
22  + a(0, 2, 0, 2) * b(0, 2, 0, 2) + a(1, 2, 0, 2) * b(1, 2, 0, 2)
23  + a(1, 0, 1, 0) * b(1, 0, 1, 0) + a(2, 0, 1, 0) * b(2, 0, 1, 0)
24  + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
25  + a(0, 2, 1, 0) * b(0, 2, 1, 0) + a(1, 2, 1, 0) * b(1, 2, 1, 0)
26  + a(1, 0, 1, 2) * b(1, 0, 1, 2) + a(2, 0, 1, 2) * b(2, 0, 1, 2)
27  + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
28  + a(0, 2, 1, 2) * b(0, 2, 1, 2) + a(1, 2, 1, 2) * b(1, 2, 1, 2)
29  + a(1, 0, 2, 0) * b(1, 0, 2, 0) + a(2, 0, 2, 0) * b(2, 0, 2, 0)
30  + a(0, 1, 2, 0) * b(0, 1, 2, 0) + a(2, 1, 2, 0) * b(2, 1, 2, 0)
31  + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
32  + a(1, 0, 2, 1) * b(1, 0, 2, 1) + a(2, 0, 2, 1) * b(2, 0, 2, 1)
33  + a(0, 1, 2, 1) * b(0, 1, 2, 1) + a(2, 1, 2, 1) * b(2, 1, 2, 1)
34  + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
35  }

◆ operator*() [70/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b 
)

Definition at line 52 of file Riemann_times_Ddg.hpp.

54  {
55  return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
56  + a(0, 1, 0, 1) * b(0, 0, 1, 1) + a(2, 1, 0, 1) * b(2, 0, 1, 1)
57  + a(0, 2, 0, 1) * b(0, 0, 2, 1) + a(1, 2, 0, 1) * b(1, 0, 2, 1)
58  + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
59  + a(0, 1, 0, 2) * b(0, 0, 1, 2) + a(2, 1, 0, 2) * b(2, 0, 1, 2)
60  + a(0, 2, 0, 2) * b(0, 0, 2, 2) + a(1, 2, 0, 2) * b(1, 0, 2, 2)
61  + a(1, 0, 1, 0) * b(1, 1, 0, 0) + a(2, 0, 1, 0) * b(2, 1, 0, 0)
62  + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
63  + a(0, 2, 1, 0) * b(0, 1, 2, 0) + a(1, 2, 1, 0) * b(1, 1, 2, 0)
64  + a(1, 0, 1, 2) * b(1, 1, 0, 2) + a(2, 0, 1, 2) * b(2, 1, 0, 2)
65  + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
66  + a(0, 2, 1, 2) * b(0, 1, 2, 2) + a(1, 2, 1, 2) * b(1, 1, 2, 2)
67  + a(1, 0, 2, 0) * b(1, 2, 0, 0) + a(2, 0, 2, 0) * b(2, 2, 0, 0)
68  + a(0, 1, 2, 0) * b(0, 2, 1, 0) + a(2, 1, 2, 0) * b(2, 2, 1, 0)
69  + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
70  + a(1, 0, 2, 1) * b(1, 2, 0, 1) + a(2, 0, 2, 1) * b(2, 2, 0, 1)
71  + a(0, 1, 2, 1) * b(0, 2, 1, 1) + a(2, 1, 2, 1) * b(2, 2, 1, 1)
72  + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
73  }

◆ operator*() [71/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, j, k, l> FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 35 of file Riemann_times_Tensor1.hpp.

37  {
38  using TensorExpr = Riemann_times_Tensor1_0<A, B, T, U, Dim, i, j, k, l>;
39  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
40  Dim, Dim, j, k, l>(TensorExpr(a, b));
41  }

◆ operator*() [72/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, k, l> FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 85 of file Riemann_times_Tensor1.hpp.

87  {
88  using TensorExpr = Riemann_times_Tensor1_1<A, B, T, U, Dim, i, j, k, l>;
89  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
90  Dim, Dim, i, k, l>(TensorExpr(a, b));
91  }

◆ operator*() [73/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, j, l> FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, k > &  b 
)

Definition at line 135 of file Riemann_times_Tensor1.hpp.

137  {
138  using TensorExpr = Riemann_times_Tensor1_2<A, B, T, U, Dim, i, j, k, l>;
139  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
140  Dim, Dim, i, j, l>(TensorExpr(a, b));
141  }

◆ operator*() [74/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, j, k> FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, l > &  b 
)

Definition at line 185 of file Riemann_times_Tensor1.hpp.

187  {
188  using TensorExpr = Riemann_times_Tensor1_3<A, B, T, U, Dim, i, j, k, l>;
189  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
190  Dim, Dim, i, j, k>(TensorExpr(a, b));
191  }

◆ operator*() [75/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, j, l> FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b 
)

Definition at line 43 of file Riemann_times_Tensor2_symmetric.hpp.

45  {
46  using TensorExpr
47  = Riemann_times_Tensor2_symmetric_0<A, B, T, U, Dim, i, j, k, l>;
48  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
49  j, l>(TensorExpr(a, b));
50  }

◆ operator*() [76/392]

template<class A , class B , class T , class U , int Dim, char i>
promote<T, U>::V FTensor::operator* ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 29 of file Tensor1_times_Tensor1.hpp.

31  {
32  return T1_times_T1(a, b, Number<Dim>());
33  }

◆ operator*() [77/392]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_times_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_times_generic.hpp.

33  {
34  using TensorExpr = Tensor1_times_generic<A, T, U, Dim, i>;
36  TensorExpr(a, d0));
37  }

◆ operator*() [78/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<Tensor1_times_Tensor1<A, B, T, U, Dim0, Dim1, i, j>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor1_Expr< A, T, Dim0, i > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 59 of file Tensor1_times_Tensor1.hpp.

61  {
62  using TensorExpr = Tensor1_times_Tensor1<A, B, T, U, Dim0, Dim1, i, j>;
63  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
64  j>(TensorExpr(a, b));
65  }

◆ operator*() [79/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, j, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, i > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 50 of file Riemann_times_Tensor1.hpp.

52  {
53  using TensorExpr = Riemann_times_Tensor1_0<A, B, T, U, Dim, i, j, k, l>;
54  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
55  Dim, Dim, j, k, l>(TensorExpr(a, b));
56  }

◆ operator*() [80/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 100 of file Riemann_times_Tensor1.hpp.

102  {
103  using TensorExpr = Riemann_times_Tensor1_1<A, B, T, U, Dim, i, j, k, l>;
104  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
105  Dim, Dim, i, k, l>(TensorExpr(a, b));
106  }

◆ operator*() [81/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr<Tensor2_symmetric_times_Tensor1_1<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 102 of file Tensor2_symmetric_times_Tensor1.hpp.

104  {
105  using TensorExpr
106  = Tensor2_symmetric_times_Tensor1_1<A, B, T, U, Dim, i, j>;
108  TensorExpr(a, b));
109  }

◆ operator*() [82/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr<Tensor2_symmetric_times_Tensor1_0<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

Definition at line 116 of file Tensor2_symmetric_times_Tensor1.hpp.

118  {
119  using TensorExpr
120  = Tensor2_symmetric_times_Tensor1_0<A, B, T, U, Dim, i, j>;
122  TensorExpr(a, b));
123  }

◆ operator*() [83/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, j, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, k > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 150 of file Riemann_times_Tensor1.hpp.

152  {
153  using TensorExpr = Riemann_times_Tensor1_2<A, B, T, U, Dim, i, j, k, l>;
154  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
155  Dim, Dim, i, j, l>(TensorExpr(a, b));
156  }

◆ operator*() [84/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim, l > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 200 of file Riemann_times_Tensor1.hpp.

202  {
203  using TensorExpr = Riemann_times_Tensor1_3<A, B, T, U, Dim, i, j, k, l>;
204  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
205  Dim, Dim, i, j, k>(TensorExpr(a, b));
206  }

◆ operator*() [85/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 73 of file Tensor2_times_Tensor1.hpp.

75  {
76  return a * b;
77  }

◆ operator*() [86/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 122 of file Tensor3_times_Tensor1.hpp.

124  {
125  using TensorExpr
126  = Tensor3_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
127  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
128  k>(TensorExpr(a, b));
129  }

◆ operator*() [87/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 269 of file Tensor4_times_Tensor1.hpp.

271  {
272  typedef const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
273  i, j, k, l>
274  TensorExpr;
275  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
276  Dim3, j, k, l>(TensorExpr(a, b));
277  }

◆ operator*() [88/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, j, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, i > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 160 of file Ddg_times_Tensor1.hpp.

161  {
162  using TensorExpr = Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>;
163  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, j, k, l>(
164  TensorExpr(a, b));
165 }

◆ operator*() [89/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 213 of file Ddg_times_Tensor1.hpp.

214  {
215  using TensorExpr = Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>;
216  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, k, l>(
217  TensorExpr(a, b));
218 }

◆ operator*() [90/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr<Dg_times_Tensor1_1<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j> FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &  a 
)

Definition at line 119 of file Dg_times_Tensor1.hpp.

121  {
122  using TensorExpr = Dg_times_Tensor1_1<A, B, T, U, Dim01, Dim2, i, j, k>;
123  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
124  j>(TensorExpr(a, b));
125  }

◆ operator*() [91/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr<Dg_times_Tensor1_0<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j> FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a 
)

Definition at line 178 of file Dg_times_Tensor1.hpp.

180  {
181  using TensorExpr = Dg_times_Tensor1_0<A, B, T, U, Dim01, Dim2, i, j, k>;
182  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i,
183  j>(TensorExpr(a, b));
184  }

◆ operator*() [92/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 51 of file Tensor2_times_Tensor1.hpp.

53  {
54  return a * b;
55  }

◆ operator*() [93/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 60 of file Tensor3_times_Tensor1.hpp.

62  {
63  using TensorExpr
64  = Tensor3_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
65  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
66  k>(TensorExpr(a, b));
67  }

◆ operator*() [94/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 201 of file Tensor4_times_Tensor1.hpp.

203  {
204  typedef const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
205  i, j, k, l>
206  TensorExpr;
207  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
208  Dim3, i, k, l>(TensorExpr(a, b));
209  }

◆ operator*() [95/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr<Dg_times_Tensor1_2<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 60 of file Dg_times_Tensor1.hpp.

62  {
63  using TensorExpr = Dg_times_Tensor1_2<A, B, T, U, Dim01, Dim2, i, j, k>;
64  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
65  i, j>(TensorExpr(a, b));
66  }

◆ operator*() [96/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr<Tensor2_times_Tensor1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim1, Dim2, i, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 119 of file Tensor2_times_Tensor1.hpp.

121  {
122  using TensorExpr
123  = Tensor2_times_Tensor1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
124  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
125  Dim2, i, j, k>(TensorExpr(a, b));
126  }

◆ operator*() [97/392]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr<Tensor2_symmetric_times_Tensor1<A, B, T, U, Dim, Dim2, i, j, k>, typename promote<T, U>::V, Dim, Dim2, i, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 166 of file Tensor2_symmetric_times_Tensor1.hpp.

168  {
169  using TensorExpr
170  = Tensor2_symmetric_times_Tensor1<A, B, T, U, Dim, Dim2, i, j, k>;
171  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim2, i, j, k>(
172  TensorExpr(a, b));
173  }

◆ operator*() [98/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 184 of file Tensor3_times_Tensor1.hpp.

186  {
187  using TensorExpr
188  = Tensor3_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
189  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
190  j>(TensorExpr(a, b));
191  };

◆ operator*() [99/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 133 of file Tensor4_times_Tensor1.hpp.

135  {
136  typedef const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
137  i, j, k, l>
138  TensorExpr;
139  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
140  Dim3, i, j, l>(TensorExpr(a, b));
141  }

◆ operator*() [100/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, j, l> FTensor::operator* ( const Tensor1_Expr< B, U, Dim23, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 54 of file Ddg_times_Tensor1.hpp.

55  {
56  using TensorExpr = Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>;
57  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, l>(
58  TensorExpr(a, b));
59 }

◆ operator*() [101/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr<Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim23, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 107 of file Ddg_times_Tensor1.hpp.

108  {
109  using TensorExpr = Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>;
110  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k>(
111  TensorExpr(a, b));
112 }

◆ operator*() [102/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim2, i, j, k> FTensor::operator* ( const Tensor1_Expr< B, U, Dim3, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 65 of file Tensor4_times_Tensor1.hpp.

67  {
68  typedef const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
69  i, j, k, l>
70  TensorExpr;
71  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
72  Dim2, i, j, k>(TensorExpr(a, b));
73  }

◆ operator*() [103/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)

Definition at line 60 of file Tensor2_times_Tensor1.hpp.

62  {
63  using TensorExpr
64  = Tensor2_times_Tensor1_single<A, B, T, U, Dim0, Dim1, Dim0, i, j, i,
65  Dim1, Dim0, j, i>;
67  TensorExpr(a, b));
68  }

◆ operator*() [104/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 38 of file Tensor2_times_Tensor1.hpp.

40  {
41  using TensorExpr
42  = Tensor2_times_Tensor1_single<A, B, T, U, Dim0, Dim1, Dim1, i, j, j,
43  Dim0, Dim1, i, j>;
45  TensorExpr(a, b));
46  }

◆ operator*() [105/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr<Tensor2_times_Tensor1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim1, Dim2, i, j, k> FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 104 of file Tensor2_times_Tensor1.hpp.

106  {
107  using TensorExpr
108  = Tensor2_times_Tensor1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
109  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
110  Dim2, i, j, k>(TensorExpr(a, b));
111  }

◆ operator*() [106/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 52 of file Tensor2_times_Tensor2.hpp.

54  {
55  return T2_times_T2(a, b, Number<Dim0>(), Number<Dim1>());
56  }

◆ operator*() [107/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 99 of file Tensor2_times_Tensor2.hpp.

101  {
102  return T2_times_switched_T2(a, b, Number<Dim0>(), Number<Dim1>());
103  }

◆ operator*() [108/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor2_times_Tensor2_10<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 147 of file Tensor2_times_Tensor2.hpp.

149  {
150  using TensorExpr
151  = Tensor2_times_Tensor2_10<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
152  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
153  k>(TensorExpr(a, b));
154  }

◆ operator*() [109/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor2_times_Tensor2_11<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 193 of file Tensor2_times_Tensor2.hpp.

195  {
196  using TensorExpr
197  = Tensor2_times_Tensor2_11<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
198  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
199  k>(TensorExpr(a, b));
200  }

◆ operator*() [110/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor4_Expr< Tensor2_times_Tensor2<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim2, Dim3, i, j, k, l> FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 320 of file Tensor2_times_Tensor2.hpp.

322  {
323  using TensorExpr
324  = Tensor2_times_Tensor2<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>;
325  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
326  Dim2, Dim3, i, j, k, l>(TensorExpr(a, b));
327  }

◆ operator*() [111/392]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<Tensor2_times_generic<A, T, U, Dim0, Dim1, i, j>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const U &  d0 
)

Definition at line 28 of file Tensor2_times_generic.hpp.

29  {
30  using TensorExpr = Tensor2_times_generic<A, T, U, Dim0, Dim1, i, j>;
31  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
32  j>(TensorExpr(a, d0));
33  }

◆ operator*() [112/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor2_times_Tensor2_00<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 239 of file Tensor2_times_Tensor2.hpp.

241  {
242  using TensorExpr
243  = Tensor2_times_Tensor2_00<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
244  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
245  k>(TensorExpr(a, b));
246  }

◆ operator*() [113/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor2_times_Tensor2_01<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 285 of file Tensor2_times_Tensor2.hpp.

287  {
288  using TensorExpr
289  = Tensor2_times_Tensor2_01<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
290  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
291  k>(TensorExpr(a, b));
292  }

◆ operator*() [114/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 60 of file Tensor2_symmetric_times_Tensor2.hpp.

63  {
64  return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
65  }

◆ operator*() [115/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 119 of file Tensor2_symmetric_times_Tensor2.hpp.

122  {
123  return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
124  }

◆ operator*() [116/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 186 of file Tensor2_symmetric_times_Tensor2.hpp.

188  {
189  using TensorExpr
190  = Tensor2_symmetric_times_Tensor2_10<A, B, T, U, Dim, Dim1, i, j, k>;
191  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
192  TensorExpr(a, b));
193  }

◆ operator*() [117/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

Definition at line 314 of file Tensor2_symmetric_times_Tensor2.hpp.

316  {
317  using TensorExpr
318  = Tensor2_symmetric_times_Tensor2_00<A, B, T, U, Dim, Dim1, i, j, k>;
319  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
320  TensorExpr(a, b));
321  }

◆ operator*() [118/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 144 of file Tensor3_times_Tensor2.hpp.

146  {
147  return a * b;
148  }

◆ operator*() [119/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a 
)

Definition at line 488 of file Tensor3_times_Tensor2.hpp.

490  {
491  using TensorExpr = Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2,
492  Dim3, i, j, k, l>;
493  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
494  Dim3, j, k, l>(TensorExpr(a, b));
495  }

◆ operator*() [120/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 306 of file Tensor4_times_Tensor2_double.hpp.

308  {
309  return a * b;
310  }

◆ operator*() [121/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 100 of file Tensor3_times_Tensor2.hpp.

102  {
103  return a * b;
104  }

◆ operator*() [122/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 256 of file Tensor4_times_Tensor2_double.hpp.

258  {
259  return a * b;
260  }

◆ operator*() [123/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 206 of file Tensor4_times_Tensor2_double.hpp.

208  {
209  return a * b;
210  }

◆ operator*() [124/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 233 of file Tensor4_times_Tensor2.hpp.

235  {
236  typedef const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
237  i, j, k, l>
238  TensorExpr;
239  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
240  k>(TensorExpr(a, b));
241  }

◆ operator*() [125/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 208 of file Tensor4_times_Tensor2_single.hpp.

210  {
211  return a * b;
212  }

◆ operator*() [126/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim1, Dim1, Dim2, Dim3, m, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 730 of file Tensor4_times_Tensor2.hpp.

732  {
733  typedef const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
734  Dim4, i, j, k, l, m>
735  TensorExpr;
736  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim4, Dim1,
737  Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
738  }

◆ operator*() [127/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 214 of file Ddg_times_Tensor2.hpp.

215  {
216  using TensorExpr =
217  Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
218  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
219  k, l>(TensorExpr(a, b));
220  }

◆ operator*() [128/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &  a 
)

Definition at line 244 of file Ddg_times_Tensor2.hpp.

245  {
246  using TensorExpr =
247  Ddg_times_Tensor2_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
248  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
249  k, l>(TensorExpr(a, b));
250  }

◆ operator*() [129/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_01<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 584 of file Dg_times_Tensor2.hpp.

586  {
587  using TensorExpr = Dg_times_Tensor2_01<A, B, T, U, Dim01, Dim2, i, j, k>;
589  TensorExpr(a, b));
590  }

◆ operator*() [130/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_10<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 651 of file Dg_times_Tensor2.hpp.

653  {
654  using TensorExpr = Dg_times_Tensor2_10<A, B, T, U, Dim01, Dim2, i, j, k>;
656  TensorExpr(a, b));
657  }

◆ operator*() [131/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim1, m, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 793 of file Ddg_times_Tensor2.hpp.

795  {
796  typedef const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j,
797  k, l, m>
798  TensorExpr;
799  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim01,
800  Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
801  }

◆ operator*() [132/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m>, typename promote<T, U>::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 860 of file Ddg_times_Tensor2.hpp.

862  {
863  typedef const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j,
864  k, l, m>
865  TensorExpr;
866  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim01,
867  Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
868  }

◆ operator*() [133/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_12<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 316 of file Dg_times_Tensor2.hpp.

318  {
319  using TensorExpr = Dg_times_Tensor2_12<A, B, T, U, Dim01, Dim2, i, j, k>;
321  TensorExpr(a, b));
322  }

◆ operator*() [134/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_02<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &  a 
)

Definition at line 450 of file Dg_times_Tensor2.hpp.

452  {
453  using TensorExpr = Dg_times_Tensor2_02<A, B, T, U, Dim01, Dim2, i, j, k>;
455  TensorExpr(a, b));
456  }

◆ operator*() [135/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 659 of file Ddg_times_Tensor2.hpp.

661  {
662  typedef const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j,
663  k, l, m>
664  TensorExpr;
665  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
666  Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
667  }

◆ operator*() [136/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 726 of file Ddg_times_Tensor2.hpp.

728  {
729  typedef const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j,
730  k, l, m>
731  TensorExpr;
732  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
733  Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
734  }

◆ operator*() [137/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr<Ddg_times_Tensor2_13<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 317 of file Ddg_times_Tensor2.hpp.

318  {
319  using TensorExpr
320  = Ddg_times_Tensor2_13<A, B, T, U, Dim01, Dim23, i, j, k, l>;
321  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i,
322  k>(TensorExpr(a, b));
323  }

◆ operator*() [138/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<Dg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 186 of file Dg_times_Tensor2.hpp.

188  {
189  using TensorExpr
190  = Dg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
191  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
192  Dim3, i, k, l>(TensorExpr(a, b));
193  }

◆ operator*() [139/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 250 of file Tensor2_symmetric_times_Tensor2.hpp.

252  {
253  using TensorExpr
254  = Tensor2_symmetric_times_Tensor2_11<A, B, T, U, Dim, Dim1, i, j, k>;
255  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
256  TensorExpr(a, b));
257  }

◆ operator*() [140/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

Definition at line 378 of file Tensor2_symmetric_times_Tensor2.hpp.

380  {
381  using TensorExpr
382  = Tensor2_symmetric_times_Tensor2_01<A, B, T, U, Dim, Dim1, i, j, k>;
383  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
384  TensorExpr(a, b));
385  }

◆ operator*() [141/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 166 of file Tensor3_times_Tensor2.hpp.

168  {
169  return a * b;
170  }

◆ operator*() [142/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a 
)

Definition at line 553 of file Tensor3_times_Tensor2.hpp.

555  {
556  using TensorExpr = Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2,
557  Dim3, i, j, k, l>;
558  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
559  Dim3, j, k, l>(TensorExpr(a, b));
560  }

◆ operator*() [143/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 331 of file Tensor4_times_Tensor2_double.hpp.

333  {
334  return a * b;
335  }

◆ operator*() [144/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 56 of file Tensor3_times_Tensor2.hpp.

58  {
59  return a * b;
60  }

◆ operator*() [145/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a 
)

Definition at line 358 of file Tensor3_times_Tensor2.hpp.

360  {
361  using TensorExpr = Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2,
362  Dim3, i, j, k, l>;
363  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
364  Dim3, i, k, l>(TensorExpr(a, b));
365  }

◆ operator*() [146/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 156 of file Tensor4_times_Tensor2_double.hpp.

158  {
159  return a * b;
160  }

◆ operator*() [147/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 106 of file Tensor4_times_Tensor2_double.hpp.

108  {
109  return a * b;
110  }

◆ operator*() [148/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_13<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 374 of file Tensor4_times_Tensor2.hpp.

376  {
377  typedef const Tensor4_times_Tensor2_13<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
378  i, j, k, l>
379  TensorExpr;
380  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, i,
381  k>(TensorExpr(a, b));
382  }

◆ operator*() [149/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 158 of file Tensor4_times_Tensor2_single.hpp.

160  {
161  return a * b;
162  }

◆ operator*() [150/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 590 of file Tensor4_times_Tensor2.hpp.

592  {
593  typedef const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
594  Dim4, i, j, k, l, m>
595  TensorExpr;
596  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
597  Dim4, Dim3, i, m, k, l>(TensorExpr(a, b));
598  }

◆ operator*() [151/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 122 of file Tensor3_times_Tensor2.hpp.

124  {
125  return a * b;
126  }

◆ operator*() [152/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 281 of file Tensor4_times_Tensor2_double.hpp.

283  {
284  return a * b;
285  }

◆ operator*() [153/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_20<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a 
)

Definition at line 517 of file Dg_times_Tensor2.hpp.

519  {
520  using TensorExpr = Dg_times_Tensor2_20<A, B, T, U, Dim01, Dim2, i, j, k>;
522  TensorExpr(a, b));
523  }

◆ operator*() [154/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_21<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, i> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 383 of file Dg_times_Tensor2.hpp.

385  {
386  using TensorExpr = Dg_times_Tensor2_21<A, B, T, U, Dim01, Dim2, i, j, k>;
388  TensorExpr(a, b));
389  }

◆ operator*() [155/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 78 of file Tensor3_times_Tensor2.hpp.

80  {
81  return a * b;
82  }

◆ operator*() [156/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a 
)

Definition at line 423 of file Tensor3_times_Tensor2.hpp.

425  {
426  using TensorExpr = Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2,
427  Dim3, i, j, k, l>;
428  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
429  Dim3, i, k, l>(TensorExpr(a, b));
430  }

◆ operator*() [157/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 181 of file Tensor4_times_Tensor2_double.hpp.

183  {
184  return a * b;
185  }

◆ operator*() [158/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim3, i, j, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 62 of file Dg_times_Tensor2.hpp.

64  {
65  using TensorExpr
66  = Dg_times_Tensor2_0<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
67  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
68  TensorExpr(a, b));
69  }

◆ operator*() [159/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 228 of file Tensor3_times_Tensor2.hpp.

230  {
231  using TensorExpr = Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2,
232  Dim3, i, j, k, l>;
233  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
234  Dim3, i, j, l>(TensorExpr(a, b));
235  }

◆ operator*() [160/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 56 of file Tensor4_times_Tensor2_double.hpp.

58  {
59  return a * b;
60  }

◆ operator*() [161/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 77 of file Tensor4_times_Tensor2.hpp.

79  {
80  typedef const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
81  i, j, k, l>
82  TensorExpr;
83  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
84  j>(TensorExpr(a, b));
85  }

◆ operator*() [162/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 108 of file Tensor4_times_Tensor2_single.hpp.

110  {
111  return a * b;
112  }

◆ operator*() [163/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 870 of file Tensor4_times_Tensor2.hpp.

872  {
873  typedef const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
874  Dim4, i, j, k, l, m>
875  TensorExpr;
876  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
877  Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
878  }

◆ operator*() [164/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 74 of file Ddg_times_Tensor2.hpp.

76  {
77  using TensorExpr
78  = Ddg_times_Tensor2_23<A, B, T, U, Dim01, Dim23, i, j, k, l>;
79  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
80  i, j>(TensorExpr(a, b));
81  }

◆ operator*() [165/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 148 of file Ddg_times_Tensor2.hpp.

150  {
151  using TensorExpr
152  = Ddg_times_Tensor2_32<A, B, T, U, Dim01, Dim23, i, j, k, l>;
153  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
154  i, j>(TensorExpr(a, b));
155  }

◆ operator*() [166/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m> FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 391 of file Ddg_times_Tensor2.hpp.

393  {
394  typedef const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
395  k, l, m>
396  TensorExpr;
397  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
398  Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
399  }

◆ operator*() [167/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 231 of file Tensor4_times_Tensor2_double.hpp.

233  {
234  return a * b;
235  }

◆ operator*() [168/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 311 of file Tensor4_times_Tensor2.hpp.

313  {
314  typedef const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
315  i, j, k, l>
316  TensorExpr;
317  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
318  k>(TensorExpr(a, b));
319  }

◆ operator*() [169/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<Dg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 248 of file Dg_times_Tensor2.hpp.

250  {
251  using TensorExpr
252  = Dg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
253  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
254  Dim3, i, k, l>(TensorExpr(a, b));
255  }

◆ operator*() [170/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 131 of file Tensor4_times_Tensor2_double.hpp.

133  {
134  return a * b;
135  }

◆ operator*() [171/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim3, i, j, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 124 of file Dg_times_Tensor2.hpp.

126  {
127  using TensorExpr
128  = Dg_times_Tensor2_1<A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l>;
129  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
130  TensorExpr(a, b));
131  }

◆ operator*() [172/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 293 of file Tensor3_times_Tensor2.hpp.

295  {
296  using TensorExpr = Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2,
297  Dim3, i, j, k, l>;
298  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
299  Dim3, i, j, l>(TensorExpr(a, b));
300  }

◆ operator*() [173/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 81 of file Tensor4_times_Tensor2_double.hpp.

83  {
84  return a * b;
85  }

◆ operator*() [174/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 155 of file Tensor4_times_Tensor2.hpp.

157  {
158  typedef const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
159  i, j, k, l>
160  TensorExpr;
161  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
162  j>(TensorExpr(a, b));
163  }

◆ operator*() [175/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 58 of file Tensor4_times_Tensor2_single.hpp.

60  {
61  return a * b;
62  }

◆ operator*() [176/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m> FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 450 of file Tensor4_times_Tensor2.hpp.

452  {
453  typedef const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
454  Dim4, i, j, k, l, m>
455  TensorExpr;
456  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
457  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
458  }

◆ operator*() [177/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 233 of file Tensor4_times_Tensor2_single.hpp.

235  {
236  return a * b;
237  }

◆ operator*() [178/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim4, Dim1, Dim2, Dim3, m, j, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 800 of file Tensor4_times_Tensor2.hpp.

802  {
803  typedef const Tensor4_times_Tensor2_0_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
804  Dim4, i, j, k, l, m>
805  TensorExpr;
806  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim4, Dim1,
807  Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
808  }

◆ operator*() [179/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 183 of file Tensor4_times_Tensor2_single.hpp.

185  {
186  return a * b;
187  }

◆ operator*() [180/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 660 of file Tensor4_times_Tensor2.hpp.

662  {
663  typedef const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
664  Dim4, i, j, k, l, m>
665  TensorExpr;
666  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim4,
667  Dim2, Dim3, i, m, k, l>(TensorExpr(a, b));
668  }

◆ operator*() [181/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 133 of file Tensor4_times_Tensor2_single.hpp.

135  {
136  return a * b;
137  }

◆ operator*() [182/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 940 of file Tensor4_times_Tensor2.hpp.

942  {
943  typedef const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
944  Dim4, i, j, k, l, m>
945  TensorExpr;
946  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
947  Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
948  }

◆ operator*() [183/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 592 of file Ddg_times_Tensor2.hpp.

594  {
595  typedef const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
596  k, l, m>
597  TensorExpr;
598  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
599  Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
600  }

◆ operator*() [184/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 525 of file Ddg_times_Tensor2.hpp.

527  {
528  typedef const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
529  k, l, m>
530  TensorExpr;
531  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
532  Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
533  }

◆ operator*() [185/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 458 of file Ddg_times_Tensor2.hpp.

460  {
461  typedef const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
462  k, l, m>
463  TensorExpr;
464  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01,
465  Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
466  }

◆ operator*() [186/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 83 of file Tensor4_times_Tensor2_single.hpp.

85  {
86  return a * b;
87  }

◆ operator*() [187/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m> FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 520 of file Tensor4_times_Tensor2.hpp.

522  {
523  typedef const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
524  Dim4, i, j, k, l, m>
525  TensorExpr;
526  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
527  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
528  }

◆ operator*() [188/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr<Tensor2_symmetric_times_Tensor1_1<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 44 of file Tensor2_symmetric_times_Tensor1.hpp.

46  {
47  using TensorExpr
48  = Tensor2_symmetric_times_Tensor1_1<A, B, T, U, Dim, i, j>;
50  TensorExpr(a, b));
51  }

◆ operator*() [189/392]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr<Tensor2_symmetric_times_Tensor1<A, B, T, U, Dim, Dim2, i, j, k>, typename promote<T, U>::V, Dim, Dim2, i, j, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 151 of file Tensor2_symmetric_times_Tensor1.hpp.

153  {
154  using TensorExpr
155  = Tensor2_symmetric_times_Tensor1<A, B, T, U, Dim, Dim2, i, j, k>;
156  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim2, i, j, k>(
157  TensorExpr(a, b));
158  }

◆ operator*() [190/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b 
)

Definition at line 50 of file Tensor2_symmetric_times_Tensor2.hpp.

52  {
53  return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
54  }

◆ operator*() [191/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b 
)

Definition at line 109 of file Tensor2_symmetric_times_Tensor2.hpp.

111  {
112  return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
113  }

◆ operator*() [192/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b 
)

Definition at line 170 of file Tensor2_symmetric_times_Tensor2.hpp.

172  {
173  using TensorExpr
174  = Tensor2_symmetric_times_Tensor2_10<A, B, T, U, Dim, Dim1, i, j, k>;
175  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
176  TensorExpr(a, b));
177  }

◆ operator*() [193/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b 
)

Definition at line 234 of file Tensor2_symmetric_times_Tensor2.hpp.

236  {
237  using TensorExpr
238  = Tensor2_symmetric_times_Tensor2_11<A, B, T, U, Dim, Dim1, i, j, k>;
239  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
240  TensorExpr(a, b));
241  }

◆ operator*() [194/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b 
)

Definition at line 50 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

52  {
53  return T2s_times_T2s(a, b, Number<Dim>(), Number<Dim>());
54  }

◆ operator*() [195/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b 
)

Definition at line 95 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

97  {
98  return T2s_times_switched_T2s(a, b, Number<Dim>(), Number<Dim>());
99  }

◆ operator*() [196/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_10<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 143 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

145  {
146  using TensorExpr
147  = Tensor2_symmetric_times_Tensor2_symmetric_10<A, B, T, U, Dim, i, j, k>;
148  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
149  TensorExpr(a, b));
150  }

◆ operator*() [197/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_11<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

Definition at line 189 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

191  {
192  using TensorExpr
193  = Tensor2_symmetric_times_Tensor2_symmetric_11<A, B, T, U, Dim, i, j, k>;
194  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
195  TensorExpr(a, b));
196  }

◆ operator*() [198/392]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 9 of file Tensor2_symmetric_times_generic.hpp.

10  {
11  auto TensorExpr = [&a, d0](const int N1, const int N2) {
12  return a.operator()(N1, N2) * d0;
13  };
14  return Tensor2_symmetric_Expr<decltype(TensorExpr),
15  typename promote<T, U>::V, Dim, i, j>(
16  TensorExpr);
17  }

◆ operator*() [199/392]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr<Tensor2_symmetric_times_Tensor1_0<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 88 of file Tensor2_symmetric_times_Tensor1.hpp.

90  {
91  using TensorExpr
92  = Tensor2_symmetric_times_Tensor1_0<A, B, T, U, Dim, i, j>;
94  TensorExpr(a, b));
95  }

◆ operator*() [200/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b 
)

Definition at line 298 of file Tensor2_symmetric_times_Tensor2.hpp.

300  {
301  using TensorExpr
302  = Tensor2_symmetric_times_Tensor2_00<A, B, T, U, Dim, Dim1, i, j, k>;
303  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
304  TensorExpr(a, b));
305  }

◆ operator*() [201/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01<A, B, T, U, Dim, Dim1, i, j, k>, typename promote<T, U>::V, Dim, Dim1, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b 
)

Definition at line 362 of file Tensor2_symmetric_times_Tensor2.hpp.

364  {
365  using TensorExpr
366  = Tensor2_symmetric_times_Tensor2_01<A, B, T, U, Dim, Dim1, i, j, k>;
367  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, i, k>(
368  TensorExpr(a, b));
369  }

◆ operator*() [202/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_00<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 235 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

237  {
238  using TensorExpr
239  = Tensor2_symmetric_times_Tensor2_symmetric_00<A, B, T, U, Dim, i, j, k>;
240  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
241  TensorExpr(a, b));
242  }

◆ operator*() [203/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_01<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

Definition at line 281 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

283  {
284  using TensorExpr
285  = Tensor2_symmetric_times_Tensor2_symmetric_01<A, B, T, U, Dim, i, j, k>;
286  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
287  TensorExpr(a, b));
288  }

◆ operator*() [204/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, char k, char l>
Ddg_Expr<Tensor2_symmetric_times_Tensor2_symmetric<A, B, T, U, Dim0, Dim1, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j, k, l> FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim0, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim1, k, l > &  b 
)

Definition at line 317 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

319  {
320  using TensorExpr
321  = Tensor2_symmetric_times_Tensor2_symmetric<A, B, T, U, Dim0, Dim1, i, j,
322  k, l>;
323  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i, j, k,
324  l>(TensorExpr(a, b));
325  }

◆ operator*() [205/392]

template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim3, k, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 465 of file Tensor4_times_Tensor2_symmetric.hpp.

467  {
468  using TensorExpr
469  = Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j,
470  k, l>;
471  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, k,
472  l>(TensorExpr(a, b));
473  }

◆ operator*() [206/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, j, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 59 of file Riemann_times_Tensor2_symmetric.hpp.

61  {
62  using TensorExpr
63  = Riemann_times_Tensor2_symmetric_0<A, B, T, U, Dim, i, j, k, l>;
64  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
65  j, l>(TensorExpr(a, b));
66  }

◆ operator*() [207/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 389 of file Tensor4_times_Tensor2_symmetric.hpp.

391  {
392  using TensorExpr
393  = Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j,
394  k, l>;
395  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
396  l>(TensorExpr(a, b));
397  }

◆ operator*() [208/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr<Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim, Dim1, Dim2, l, j, k> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b,
const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 337 of file Tensor3_times_Tensor2_symmetric.hpp.

338  {
339  using TensorExpr = Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1,
340  Dim2, i, j, k, l>;
341  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, Dim2,
342  l, j, k>(TensorExpr(a, b));
343  }

◆ operator*() [209/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 233 of file Tensor4_times_Tensor2_symmetric.hpp.

235  {
236  using TensorExpr
237  = Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j,
238  k, l>;
239  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
240  k>(TensorExpr(a, b));
241  }

◆ operator*() [210/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_12<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a 
)

Definition at line 322 of file Dg_times_Tensor2_symmetric.hpp.

324  {
325  using TensorExpr = Dg_times_Tensor2_symmetric_12<A, B, T, U, Dim, i, j, k>;
327  TensorExpr(a, b));
328  }

◆ operator*() [211/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_02<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a 
)

Definition at line 452 of file Dg_times_Tensor2_symmetric.hpp.

454  {
455  using TensorExpr = Dg_times_Tensor2_symmetric_02<A, B, T, U, Dim, i, j, k>;
457  TensorExpr(a, b));
458  }

◆ operator*() [212/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_20<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, k, i, j > &  a 
)

Definition at line 517 of file Dg_times_Tensor2_symmetric.hpp.

519  {
520  using TensorExpr = Dg_times_Tensor2_symmetric_20<A, B, T, U, Dim, i, j, k>;
522  TensorExpr(a, b));
523  }

◆ operator*() [213/392]

template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01<A, B, T, U, Dim2, Dim, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &  a 
)

Definition at line 216 of file Tensor3_times_Tensor2_symmetric.hpp.

218  {
219  using TensorExpr
220  = Tensor3_times_Tensor2_symmetric_01<A, B, T, U, Dim2, Dim, i, j, k>;
222  TensorExpr(a, b));
223  }

◆ operator*() [214/392]

template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim, i, j, k>, typename promote<T, U>::V, Dim1, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &  a 
)

Definition at line 144 of file Tensor3_times_Tensor2_symmetric.hpp.

146  {
147  using TensorExpr
148  = Tensor3_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim, i, j, k>;
150  TensorExpr(a, b));
151  }

◆ operator*() [215/392]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12<A, B, T, U, Dim0, Dim, i, j, k>, typename promote<T, U>::V, Dim0, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a 
)

Definition at line 72 of file Tensor3_times_Tensor2_symmetric.hpp.

74  {
75  using TensorExpr
76  = Tensor3_times_Tensor2_symmetric_12<A, B, T, U, Dim0, Dim, i, j, k>;
78  TensorExpr(a, b));
79  }

◆ operator*() [216/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr<Ddg_times_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, k> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 73 of file Ddg_times_Tensor2_symmetric.hpp.

75  {
76  using TensorExpr
77  = Ddg_times_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
78  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k>(
79  TensorExpr(a, b));
80  }

◆ operator*() [217/392]

template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr<Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim, Dim2, i, l, k> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &  a 
)

Definition at line 277 of file Tensor3_times_Tensor2_symmetric.hpp.

278  {
279  using TensorExpr = Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim,
280  Dim2, i, j, k, l>;
281  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim, Dim2,
282  i, l, k>(TensorExpr(a, b));
283  }

◆ operator*() [218/392]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_21<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b,
const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a 
)

Definition at line 387 of file Dg_times_Tensor2_symmetric.hpp.

389  {
390  using TensorExpr = Dg_times_Tensor2_symmetric_21<A, B, T, U, Dim, i, j, k>;
392  TensorExpr(a, b));
393  }

◆ operator*() [219/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 77 of file Tensor4_times_Tensor2_symmetric.hpp.

79  {
80  using TensorExpr
81  = Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j,
82  k, l>;
83  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
84  j>(TensorExpr(a, b));
85  }

◆ operator*() [220/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, l, i > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 311 of file Tensor4_times_Tensor2_symmetric.hpp.

313  {
314  using TensorExpr
315  = Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j,
316  k, l>;
317  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
318  k>(TensorExpr(a, b));
319  }

◆ operator*() [221/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 155 of file Tensor4_times_Tensor2_symmetric.hpp.

157  {
158  using TensorExpr
159  = Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j,
160  k, l>;
161  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
162  j>(TensorExpr(a, b));
163  }

◆ operator*() [222/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim23, k, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 148 of file Ddg_times_Tensor2_symmetric.hpp.

150  {
151  using TensorExpr
152  = Ddg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim23, i, j, k, l>;
153  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim23,
154  k, l>(TensorExpr(a, b));
155  }

◆ operator*() [223/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 586 of file Dg_times_Tensor2_symmetric.hpp.

588  {
589  using TensorExpr
590  = Dg_times_Tensor2_symmetric_01<A, B, T, U, Dim01, Dim2, i, j, k>;
592  TensorExpr(a, b));
593  }

◆ operator*() [224/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim01, i, k, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 191 of file Dg_times_Tensor2_symmetric.hpp.

193  {
194  using TensorExpr
195  = Dg_times_Tensor2_symmetric_1_0<A, B, T, U, Dim01, Dim2, i, j, k, l>;
196  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
197  Dim01, i, k, l>(TensorExpr(a, b));
198  }

◆ operator*() [225/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr<Dg_times_Tensor2_symmetric_10<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 656 of file Dg_times_Tensor2_symmetric.hpp.

658  {
659  using TensorExpr
660  = Dg_times_Tensor2_symmetric_10<A, B, T, U, Dim01, Dim2, i, j, k>;
662  TensorExpr(a, b));
663  }

◆ operator*() [226/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, Dim01, i, k, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 256 of file Dg_times_Tensor2_symmetric.hpp.

258  {
259  using TensorExpr
260  = Dg_times_Tensor2_symmetric_1_1<A, B, T, U, Dim01, Dim2, i, j, k, l>;
261  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2,
262  Dim01, i, k, l>(TensorExpr(a, b));
263  }

◆ operator*() [227/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_symmetric_0<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, j, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 63 of file Dg_times_Tensor2_symmetric.hpp.

65  {
66  using TensorExpr
67  = Dg_times_Tensor2_symmetric_0<A, B, T, U, Dim01, Dim2, i, j, k, l>;
68  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
69  TensorExpr(a, b));
70  }

◆ operator*() [228/392]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr<Dg_times_Tensor2_symmetric_1<A, B, T, U, Dim01, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim2, i, j, l> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 126 of file Dg_times_Tensor2_symmetric.hpp.

128  {
129  using TensorExpr
130  = Dg_times_Tensor2_symmetric_1<A, B, T, U, Dim01, Dim2, i, j, k, l>;
131  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
132  TensorExpr(a, b));
133  }

◆ operator*() [229/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, i, j> FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 223 of file Ddg_times_Tensor2_symmetric.hpp.

225  {
226  using TensorExpr
227  = Ddg_times_Tensor2_symmetric_23<A, B, T, U, Dim01, Dim23, i, j, k, l>;
228  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim01,
229  i, j>(TensorExpr(a, b));
230  }

◆ operator*() [230/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b 
)

Definition at line 81 of file Tensor3_antisymmetric_times_Tensor3.hpp.

83  {
84  return T3as_times_T3_012(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
85  Number<Dim12>());
86  }

◆ operator*() [231/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b 
)

Definition at line 521 of file Tensor3_antisymmetric_times_Tensor3.hpp.

523  {
524  return T3as_times_T3_012(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
525  Number<Dim12>());
526  }

◆ operator*() [232/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b 
)

Definition at line 345 of file Tensor3_antisymmetric_times_Tensor3.hpp.

347  {
348  return T3as_times_T3_102(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
349  Number<Dim12>());
350  }

◆ operator*() [233/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b 
)

Definition at line 257 of file Tensor3_antisymmetric_times_Tensor3.hpp.

259  {
260  return T3as_times_T3_120(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
261  Number<Dim12>());
262  }

◆ operator*() [234/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b 
)

Definition at line 169 of file Tensor3_antisymmetric_times_Tensor3.hpp.

171  {
172  return T3as_times_T3_201(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
173  Number<Dim12>());
174  }

◆ operator*() [235/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b 
)

Definition at line 433 of file Tensor3_antisymmetric_times_Tensor3.hpp.

435  {
436  return T3as_times_T3_210(a, b, Number<Dim0>(), Number<Dim12 - 1>(),
437  Number<Dim12>());
438  }

◆ operator*() [236/392]

template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic<A, T, U, Dim0, Dim12, i, j, k>, typename promote<T, U>::V, Dim0, Dim12, i, j, k> FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const U &  d0 
)

Definition at line 36 of file Tensor3_antisymmetric_times_generic.hpp.

38  {
39  using TensorExpr
40  = Tensor3_antisymmetric_times_generic<A, T, U, Dim0, Dim12, i, j, k>;
41  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
42  Dim0, Dim12, i, j, k>(TensorExpr(a, d0));
43  }

◆ operator*() [237/392]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b 
)

Definition at line 66 of file Tensor3_times_Dg.hpp.

68  {
69  return T3_times_T3dg_012(a, b, Number<Dim>(), Number<Dim>(),
70  Number<Dim2>());
71  }

◆ operator*() [238/392]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b 
)

Definition at line 261 of file Tensor3_times_Dg.hpp.

263  {
264  return T3_times_T3dg_102(a, b, Number<Dim>(), Number<Dim>(),
265  Number<Dim2>());
266  }

◆ operator*() [239/392]

template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01<A, B, T, U, Dim2, Dim, i, j, k>, typename promote<T, U>::V, Dim2, i> FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 200 of file Tensor3_times_Tensor2_symmetric.hpp.

202  {
203  using TensorExpr
204  = Tensor3_times_Tensor2_symmetric_01<A, B, T, U, Dim2, Dim, i, j, k>;
206  TensorExpr(a, b));
207  }

◆ operator*() [240/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b 
)

Definition at line 391 of file Tensor3_times_Dg.hpp.

393  {
394  return T3_times_T3dg_021(a, b, Number<Dim>(), Number<Dim1>(),
395  Number<Dim>());
396  }

◆ operator*() [241/392]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Dg.hpp.

133  {
134  return T3_times_T3dg_201(a, b, Number<Dim>(), Number<Dim1>(),
135  Number<Dim>());
136  }

◆ operator*() [242/392]

template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim, i, j, k>, typename promote<T, U>::V, Dim1, i> FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 128 of file Tensor3_times_Tensor2_symmetric.hpp.

130  {
131  using TensorExpr
132  = Tensor3_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim, i, j, k>;
134  TensorExpr(a, b));
135  }

◆ operator*() [243/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr<Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim, Dim1, Dim2, l, j, k> FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b 
)

Definition at line 322 of file Tensor3_times_Tensor2_symmetric.hpp.

323  {
324  using TensorExpr = Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1,
325  Dim2, i, j, k, l>;
326  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim1, Dim2,
327  l, j, k>(TensorExpr(a, b));
328  }

◆ operator*() [244/392]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b 
)

Definition at line 196 of file Tensor3_times_Dg.hpp.

198  {
199  return T3_times_T3dg_120(a, b, Number<Dim0>(), Number<Dim>(),
200  Number<Dim>());
201  }

◆ operator*() [245/392]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b 
)

Definition at line 326 of file Tensor3_times_Dg.hpp.

328  {
329  return T3_times_T3dg_210(a, b, Number<Dim0>(), Number<Dim>(),
330  Number<Dim>());
331  }

◆ operator*() [246/392]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12<A, B, T, U, Dim0, Dim, i, j, k>, typename promote<T, U>::V, Dim0, i> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 56 of file Tensor3_times_Tensor2_symmetric.hpp.

58  {
59  using TensorExpr
60  = Tensor3_times_Tensor2_symmetric_12<A, B, T, U, Dim0, Dim, i, j, k>;
62  TensorExpr(a, b));
63  }

◆ operator*() [247/392]

template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr<Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim, Dim2, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim, Dim2, i, l, k> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 262 of file Tensor3_times_Tensor2_symmetric.hpp.

263  {
264  using TensorExpr = Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim,
265  Dim2, i, j, k, l>;
266  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim, Dim2,
267  i, l, k>(TensorExpr(a, b));
268  }

◆ operator*() [248/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Dg<A, B, T, U, Dim0, Dim1, Dim, Dim2, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim, Dim2, i, j, l, m> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, l, k, m > &  b 
)

Definition at line 498 of file Tensor3_times_Dg.hpp.

500  {
501  using TensorExpr
502  = Tensor3_times_Dg<A, B, T, U, Dim0, Dim1, Dim2, Dim, i, j, k, l, m>;
503  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim,
504  Dim2, i, j, l, m>(TensorExpr(a, b));
505  }

◆ operator*() [249/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)

Definition at line 107 of file Tensor3_times_Tensor1.hpp.

109  {
110  using TensorExpr
111  = Tensor3_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
112  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
113  k>(TensorExpr(a, b));
114  }

◆ operator*() [250/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim2, i, k> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 45 of file Tensor3_times_Tensor1.hpp.

47  {
48  using TensorExpr
49  = Tensor3_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
50  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
51  k>(TensorExpr(a, b));
52  }

◆ operator*() [251/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr<Tensor3_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 169 of file Tensor3_times_Tensor1.hpp.

171  {
172  using TensorExpr
173  = Tensor3_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, i, j, k>;
174  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
175  j>(TensorExpr(a, b));
176  };

◆ operator*() [252/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Tensor2.hpp.

133  {
134  using TensorExpr
135  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1,
136  i, j, k, i, j, Dim2, Dim0, Dim1, k, i, j>;
138  TensorExpr(a, b));
139  }

◆ operator*() [253/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b 
)

Definition at line 87 of file Tensor3_times_Tensor2.hpp.

89  {
90  using TensorExpr
91  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2,
92  i, j, k, i, k, Dim1, Dim0, Dim2, j, i, k>;
94  TensorExpr(a, b));
95  }

◆ operator*() [254/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 153 of file Tensor3_times_Tensor2.hpp.

155  {
156  using TensorExpr
157  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0,
158  i, j, k, j, i, Dim2, Dim0, Dim1, k, i, j>;
160  TensorExpr(a, b));
161  }

◆ operator*() [255/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 43 of file Tensor3_times_Tensor2.hpp.

45  {
46  using TensorExpr
47  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2,
48  i, j, k, j, k, Dim0, Dim1, Dim2, i, j, k>;
50  TensorExpr(a, b));
51  }

◆ operator*() [256/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b 
)

Definition at line 109 of file Tensor3_times_Tensor2.hpp.

111  {
112  using TensorExpr
113  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0,
114  i, j, k, k, i, Dim1, Dim0, Dim2, j, i, k>;
116  TensorExpr(a, b));
117  }

◆ operator*() [257/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 65 of file Tensor3_times_Tensor2.hpp.

67  {
68  using TensorExpr
69  = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1,
70  i, j, k, k, j, Dim0, Dim1, Dim2, i, j, k>;
72  TensorExpr(a, b));
73  }

◆ operator*() [258/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 212 of file Tensor3_times_Tensor2.hpp.

214  {
215  using TensorExpr = Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2,
216  Dim3, i, j, k, l>;
217  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
218  Dim3, i, j, l>(TensorExpr(a, b));
219  }

◆ operator*() [259/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 277 of file Tensor3_times_Tensor2.hpp.

279  {
280  using TensorExpr = Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2,
281  Dim3, i, j, k, l>;
282  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
283  Dim3, i, j, l>(TensorExpr(a, b));
284  }

◆ operator*() [260/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b 
)

Definition at line 66 of file Tensor3_times_Tensor3.hpp.

68  {
69  return T3_times_T3_012(a, b, Number<Dim0>(), Number<Dim1>(),
70  Number<Dim2>());
71  }

◆ operator*() [261/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b 
)

Definition at line 391 of file Tensor3_times_Tensor3.hpp.

393  {
394  return T3_times_T3_021(a, b, Number<Dim0>(), Number<Dim1>(),
395  Number<Dim2>());
396  }

◆ operator*() [262/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b 
)

Definition at line 261 of file Tensor3_times_Tensor3.hpp.

263  {
264  return T3_times_T3_102(a, b, Number<Dim0>(), Number<Dim1>(),
265  Number<Dim2>());
266  }

◆ operator*() [263/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b 
)

Definition at line 196 of file Tensor3_times_Tensor3.hpp.

198  {
199  return T3_times_T3_120(a, b, Number<Dim0>(), Number<Dim1>(),
200  Number<Dim2>());
201  }

◆ operator*() [264/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Tensor3.hpp.

133  {
134  return T3_times_T3_201(a, b, Number<Dim0>(), Number<Dim1>(),
135  Number<Dim2>());
136  }

◆ operator*() [265/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b 
)

Definition at line 326 of file Tensor3_times_Tensor3.hpp.

328  {
329  return T3_times_T3_210(a, b, Number<Dim0>(), Number<Dim1>(),
330  Number<Dim2>());
331  }

◆ operator*() [266/392]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 11 of file Tensor3_times_generic.hpp.

13  {
14  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
15  return a.operator()(N1, N2, N3) * d0;
16  };
17  return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
18  Dim1, Dim2, i, j, k>(TensorExpr);
19  }

◆ operator*() [267/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim23, int Dim4, int Dim5, char i, char j, char k, char l, char m>
Tensor4_Expr<Tensor3_times_Tensor3_21<A, B, T, U, Dim0, Dim1, Dim23, Dim4, Dim5, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, Dim5, i, j, l, m> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > &  b 
)

Definition at line 652 of file Tensor3_times_Tensor3.hpp.

654  {
655  using TensorExpr = Tensor3_times_Tensor3_21<A, B, T, U, Dim0, Dim1, Dim23,
656  Dim4, Dim5, i, j, k, l, m>;
657  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
658  Dim4, Dim5, i, j, l, m>(TensorExpr(a, b));
659  };

◆ operator*() [268/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 342 of file Tensor3_times_Tensor2.hpp.

344  {
345  using TensorExpr = Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2,
346  Dim3, i, j, k, l>;
347  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
348  Dim3, i, k, l>(TensorExpr(a, b));
349  }

◆ operator*() [269/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim2, Dim3, i, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 407 of file Tensor3_times_Tensor2.hpp.

409  {
410  using TensorExpr = Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2,
411  Dim3, i, j, k, l>;
412  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
413  Dim3, i, k, l>(TensorExpr(a, b));
414  }

◆ operator*() [270/392]

template<class A , class B , class T , class U , int Dim14, int Dim25, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<Tensor3_times_Tensor3_23_23<A, B, T, U, Dim14, Dim25, Dim0, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim3, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > &  a,
const Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > &  b 
)

Definition at line 550 of file Tensor3_times_Tensor3.hpp.

551  {
552  using TensorExpr = Tensor3_times_Tensor3_23_23<A, B, T, U, Dim14, Dim25,
553  Dim0, Dim3, i, j, k, l>;
554  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, k,
555  l>(TensorExpr(a, b));
556  };

◆ operator*() [271/392]

template<class A , class B , class T , class U , int Dim15, int Dim24, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<Tensor3_times_Tensor3_23_32<A, B, T, U, Dim15, Dim24, Dim0, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim3, i, j> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > &  b 
)

Definition at line 497 of file Tensor3_times_Tensor3.hpp.

498  {
499  using TensorExpr = Tensor3_times_Tensor3_23_32<A, B, T, U, Dim15, Dim24,
500  Dim0, Dim3, i, j, k, l>;
501  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, i,
502  j>(TensorExpr(a, b));
503  };

◆ operator*() [272/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 472 of file Tensor3_times_Tensor2.hpp.

474  {
475  using TensorExpr = Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2,
476  Dim3, i, j, k, l>;
477  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
478  Dim3, j, k, l>(TensorExpr(a, b));
479  }

◆ operator*() [273/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 537 of file Tensor3_times_Tensor2.hpp.

539  {
540  using TensorExpr = Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2,
541  Dim3, i, j, k, l>;
542  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
543  Dim3, j, k, l>(TensorExpr(a, b));
544  }

◆ operator*() [274/392]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim5, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &  b 
)

Definition at line 555 of file Tensor3_times_Dg.hpp.

556  {
557  using TensorExpr = Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2,
558  Dim5, i, j, k, l>;
559  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim5, k,
560  l>(TensorExpr(a, b));
561  };

◆ operator*() [275/392]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr<Tensor3_times_Tensor3_12_12<A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim5, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > &  b 
)

Definition at line 603 of file Tensor3_times_Tensor3.hpp.

604  {
605  using TensorExpr = Tensor3_times_Tensor3_12_12<A, B, T, U, Dim03, Dim14,
606  Dim2, Dim5, i, j, k, l>;
607  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim5, k,
608  l>(TensorExpr(a, b));
609  };

◆ operator*() [276/392]

template<class A , class B , class T , class U , int Dim04, int Dim13, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr<Tensor3_times_Tensor3_12_21<A, B, T, U, Dim04, Dim13, Dim2, Dim5, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim5, k, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > &  b 
)

Definition at line 444 of file Tensor3_times_Tensor3.hpp.

445  {
446  using TensorExpr = Tensor3_times_Tensor3_12_21<A, B, T, U, Dim04, Dim13,
447  Dim2, Dim5, i, j, k, l>;
448  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim5, k,
449  l>(TensorExpr(a, b));
450  };

◆ operator*() [277/392]

template<class A , class B , class T , class U , int Dim2, int Dim1, int Dim01, char i, char j, char k, char l>
Tensor2_Expr<Tensor3_times_Dg_02_20<A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim01, i, l> FTensor::operator* ( const Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, k, l, j > &  b 
)

Definition at line 447 of file Tensor3_times_Dg.hpp.

449  {
450  using TensorExpr
451  = Tensor3_times_Dg_02_20<A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l>;
452  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim01, i,
453  l>(TensorExpr(a, b));
454  }

◆ operator*() [278/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 509 of file Tensor4_times_Tensor3_triple.hpp.

511  {
512  return a * b;
513  }

◆ operator*() [279/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 359 of file Tensor4_times_Tensor3_triple.hpp.

361  {
362  return a * b;
363  }

◆ operator*() [280/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 91 of file Tensor3_antisymmetric_times_Tensor3.hpp.

93  {
94  return a * b;
95  }

◆ operator*() [281/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 531 of file Tensor3_antisymmetric_times_Tensor3.hpp.

533  {
534  return a * b;
535  }

◆ operator*() [282/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 534 of file Tensor4_times_Tensor3_triple.hpp.

536  {
537  return a * b;
538  }

◆ operator*() [283/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 209 of file Tensor4_times_Tensor3_triple.hpp.

211  {
212  return a * b;
213  }

◆ operator*() [284/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 384 of file Tensor4_times_Tensor3_triple.hpp.

386  {
387  return a * b;
388  }

◆ operator*() [285/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 234 of file Tensor4_times_Tensor3_triple.hpp.

236  {
237  return a * b;
238  }

◆ operator*() [286/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 559 of file Tensor4_times_Tensor3_triple.hpp.

561  {
562  return a * b;
563  }

◆ operator*() [287/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 409 of file Tensor4_times_Tensor3_triple.hpp.

411  {
412  return a * b;
413  }

◆ operator*() [288/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 584 of file Tensor4_times_Tensor3_triple.hpp.

586  {
587  return a * b;
588  }

◆ operator*() [289/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 59 of file Tensor4_times_Tensor3_triple.hpp.

61  {
62  return a * b;
63  }

◆ operator*() [290/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 434 of file Tensor4_times_Tensor3_triple.hpp.

436  {
437  return a * b;
438  }

◆ operator*() [291/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 84 of file Tensor4_times_Tensor3_triple.hpp.

86  {
87  return a * b;
88  }

◆ operator*() [292/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, j, i, k > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 355 of file Tensor3_antisymmetric_times_Tensor3.hpp.

357  {
358  return a * b;
359  }

◆ operator*() [293/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, k, i, j > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 179 of file Tensor3_antisymmetric_times_Tensor3.hpp.

181  {
182  return a * b;
183  }

◆ operator*() [294/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, j, k, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 267 of file Tensor3_antisymmetric_times_Tensor3.hpp.

269  {
270  return a * b;
271  }

◆ operator*() [295/392]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, k, j, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 443 of file Tensor3_antisymmetric_times_Tensor3.hpp.

445  {
446  return a * b;
447  }

◆ operator*() [296/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 609 of file Tensor4_times_Tensor3_triple.hpp.

611  {
612  return a * b;
613  }

◆ operator*() [297/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 259 of file Tensor4_times_Tensor3_triple.hpp.

261  {
262  return a * b;
263  }

◆ operator*() [298/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 634 of file Tensor4_times_Tensor3_triple.hpp.

636  {
637  return a * b;
638  }

◆ operator*() [299/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 109 of file Tensor4_times_Tensor3_triple.hpp.

111  {
112  return a * b;
113  }

◆ operator*() [300/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 284 of file Tensor4_times_Tensor3_triple.hpp.

286  {
287  return a * b;
288  }

◆ operator*() [301/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 134 of file Tensor4_times_Tensor3_triple.hpp.

136  {
137  return a * b;
138  }

◆ operator*() [302/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, i, j, m> FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 78 of file Tensor4_times_Tensor3_double.hpp.

79  {
80  typedef const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
81  Dim4, i, j, k, l, m>
82  TensorExpr;
83  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
84  i, j, m>(TensorExpr(a, b));
85  }

◆ operator*() [303/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 459 of file Tensor4_times_Tensor3_triple.hpp.

461  {
462  return a * b;
463  }

◆ operator*() [304/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 309 of file Tensor4_times_Tensor3_triple.hpp.

311  {
312  return a * b;
313  }

◆ operator*() [305/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 484 of file Tensor4_times_Tensor3_triple.hpp.

486  {
487  return a * b;
488  }

◆ operator*() [306/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 159 of file Tensor4_times_Tensor3_triple.hpp.

161  {
162  return a * b;
163  }

◆ operator*() [307/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 334 of file Tensor4_times_Tensor3_triple.hpp.

336  {
337  return a * b;
338  }

◆ operator*() [308/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 184 of file Tensor4_times_Tensor3_triple.hpp.

186  {
187  return a * b;
188  }

◆ operator*() [309/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim3, Dim4, i, l, m> FTensor::operator* ( const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 156 of file Tensor4_times_Tensor3_double.hpp.

158  {
159  typedef const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2,
160  Dim3, Dim4, i, j, k, l, m>
161  TensorExpr;
162  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, Dim4,
163  i, l, m>(TensorExpr(a, b));
164  }

◆ operator*() [310/392]

template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim2, Dim3, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b 
)

Definition at line 449 of file Tensor4_times_Tensor2_symmetric.hpp.

450  {
451  using TensorExpr
452  = Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j,
453  k, l>;
454  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, k,
455  l>(TensorExpr(a, b));
456  }

◆ operator*() [311/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b 
)

Definition at line 372 of file Tensor4_times_Tensor2_symmetric.hpp.

374  {
375  using TensorExpr
376  = Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j,
377  k, l>;
378  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
379  l>(TensorExpr(a, b));
380  }

◆ operator*() [312/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b 
)

Definition at line 216 of file Tensor4_times_Tensor2_symmetric.hpp.

218  {
219  using TensorExpr
220  = Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j,
221  k, l>;
222  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
223  k>(TensorExpr(a, b));
224  }

◆ operator*() [313/392]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, l, i > &  b 
)

Definition at line 294 of file Tensor4_times_Tensor2_symmetric.hpp.

296  {
297  using TensorExpr
298  = Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j,
299  k, l>;
300  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
301  k>(TensorExpr(a, b));
302  }

◆ operator*() [314/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, l > &  b 
)

Definition at line 60 of file Tensor4_times_Tensor2_symmetric.hpp.

62  {
63  using TensorExpr
64  = Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j,
65  k, l>;
66  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
67  j>(TensorExpr(a, b));
68  }

◆ operator*() [315/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, l, k > &  b 
)

Definition at line 138 of file Tensor4_times_Tensor2_symmetric.hpp.

140  {
141  using TensorExpr
142  = Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j,
143  k, l>;
144  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
145  j>(TensorExpr(a, b));
146  }

◆ operator*() [316/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr<const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim2, Dim3, Dim4, k, l, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &  b 
)
inline

Definition at line 127 of file Tensor4_times_Dg_double.hpp.

128  {
129  typedef const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
130  j, k, l, m>
131  TensorExpr;
132  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, Dim4,
133  k, l, m>(TensorExpr(a, b));
134 }

◆ operator*() [317/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr<const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, i, j, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &  b 
)
inline

Definition at line 55 of file Tensor4_times_Dg_double.hpp.

56  {
57  typedef const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
58  j, k, l, m>
59  TensorExpr;
60  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
61  i, j, m>(TensorExpr(a, b));
62 }

◆ operator*() [318/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, Dim3, j, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)
inline

Definition at line 252 of file Tensor4_times_Tensor1.hpp.

254  {
255  typedef const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
256  i, j, k, l>
257  TensorExpr;
258  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
259  Dim3, j, k, l>(TensorExpr(a, b));
260  }

◆ operator*() [319/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim2, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)
inline

Definition at line 184 of file Tensor4_times_Tensor1.hpp.

186  {
187  typedef const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
188  i, j, k, l>
189  TensorExpr;
190  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
191  Dim3, i, k, l>(TensorExpr(a, b));
192  }

◆ operator*() [320/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim3, i, j, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)
inline

Definition at line 116 of file Tensor4_times_Tensor1.hpp.

118  {
119  typedef const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
120  i, j, k, l>
121  TensorExpr;
122  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
123  Dim3, i, j, l>(TensorExpr(a, b));
124  }

◆ operator*() [321/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr<const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, Dim2, i, j, k> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim3, l > &  b 
)
inline

Definition at line 48 of file Tensor4_times_Tensor1.hpp.

50  {
51  typedef const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
52  i, j, k, l>
53  TensorExpr;
54  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
55  Dim2, i, j, k>(TensorExpr(a, b));
56  }

◆ operator*() [322/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 291 of file Tensor4_times_Tensor2_double.hpp.

293  {
294  using TensorExpr
295  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
296  Dim1, i, j, k, l, i, j, Dim2, Dim3, Dim0,
297  Dim1, k, l, i, j>;
298  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, k,
299  l>(TensorExpr(a, b));
300  }

◆ operator*() [323/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b 
)

Definition at line 241 of file Tensor4_times_Tensor2_double.hpp.

243  {
244  using TensorExpr
245  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
246  Dim2, i, j, k, l, i, k, Dim1, Dim3, Dim0,
247  Dim2, j, l, i, k>;
248  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
249  l>(TensorExpr(a, b));
250  }

◆ operator*() [324/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b 
)

Definition at line 191 of file Tensor4_times_Tensor2_double.hpp.

193  {
194  using TensorExpr
195  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
196  Dim3, i, j, k, l, i, l, Dim1, Dim2, Dim0,
197  Dim3, j, k, i, l>;
198  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
199  k>(TensorExpr(a, b));
200  }

◆ operator*() [325/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b 
)
inline

Definition at line 216 of file Tensor4_times_Tensor2.hpp.

218  {
219  typedef const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
220  i, j, k, l>
221  TensorExpr;
222  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
223  k>(TensorExpr(a, b));
224  }

◆ operator*() [326/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b 
)

Definition at line 193 of file Tensor4_times_Tensor2_single.hpp.

195  {
196  using TensorExpr
197  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
198  Dim4, i, j, k, l, i, m, Dim1, Dim2, Dim3,
199  Dim0, Dim4, j, k, l, i, m>;
200  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
201  Dim3, Dim4, j, k, l, m>(TensorExpr(a, b));
202  }

◆ operator*() [327/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim1, Dim1, Dim2, Dim3, m, j, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b 
)
inline

Definition at line 712 of file Tensor4_times_Tensor2.hpp.

714  {
715  typedef const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
716  Dim4, i, j, k, l, m>
717  TensorExpr;
718  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim4, Dim1,
719  Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
720  }

◆ operator*() [328/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 316 of file Tensor4_times_Tensor2_double.hpp.

318  {
319  using TensorExpr
320  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
321  Dim0, i, j, k, l, j, i, Dim2, Dim3, Dim0,
322  Dim1, k, l, i, j>;
323  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim2, Dim3, k,
324  l>(TensorExpr(a, b));
325  }

◆ operator*() [329/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 141 of file Tensor4_times_Tensor2_double.hpp.

143  {
144  using TensorExpr
145  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
146  Dim2, i, j, k, l, j, k, Dim0, Dim3, Dim1,
147  Dim2, i, l, j, k>;
148  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, i,
149  l>(TensorExpr(a, b));
150  }

◆ operator*() [330/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b 
)

Definition at line 91 of file Tensor4_times_Tensor2_double.hpp.

93  {
94  using TensorExpr
95  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
96  Dim3, i, j, k, l, j, l, Dim0, Dim2, Dim1,
97  Dim3, i, k, j, l>;
98  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
99  k>(TensorExpr(a, b));
100  }

◆ operator*() [331/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b 
)

Definition at line 143 of file Tensor4_times_Tensor2_single.hpp.

145  {
146  using TensorExpr
147  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
148  Dim4, i, j, k, l, j, m, Dim0, Dim2, Dim3,
149  Dim1, Dim4, i, k, l, j, m>;
150  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
151  Dim3, Dim4, i, k, l, m>(TensorExpr(a, b));
152  }

◆ operator*() [332/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b 
)
inline

Definition at line 572 of file Tensor4_times_Tensor2.hpp.

574  {
575  typedef const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
576  Dim4, i, j, k, l, m>
577  TensorExpr;
578  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
579  Dim4, Dim3, i, m, k, l>(TensorExpr(a, b));
580  }

◆ operator*() [333/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b 
)

Definition at line 266 of file Tensor4_times_Tensor2_double.hpp.

268  {
269  using TensorExpr
270  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
271  Dim0, i, j, k, l, k, i, Dim1, Dim3, Dim0,
272  Dim2, j, l, i, k>;
273  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
274  l>(TensorExpr(a, b));
275  }

◆ operator*() [334/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 166 of file Tensor4_times_Tensor2_double.hpp.

168  {
169  using TensorExpr
170  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
171  Dim1, i, j, k, l, k, j, Dim0, Dim3, Dim1,
172  Dim2, i, l, j, k>;
173  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, i,
174  l>(TensorExpr(a, b));
175  }

◆ operator*() [335/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 41 of file Tensor4_times_Tensor2_double.hpp.

43  {
44  using TensorExpr
45  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
46  Dim3, i, j, k, l, k, l, Dim0, Dim1, Dim2,
47  Dim3, i, j, k, l>;
48  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
49  j>(TensorExpr(a, b));
50  }

◆ operator*() [336/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)
inline

Definition at line 60 of file Tensor4_times_Tensor2.hpp.

62  {
63  typedef const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
64  i, j, k, l>
65  TensorExpr;
66  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
67  j>(TensorExpr(a, b));
68  }

◆ operator*() [337/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b 
)

Definition at line 93 of file Tensor4_times_Tensor2_single.hpp.

95  {
96  using TensorExpr
97  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
98  Dim4, i, j, k, l, k, m, Dim0, Dim1, Dim3,
99  Dim2, Dim4, i, j, l, k, m>;
100  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
101  Dim3, Dim4, i, j, l, m>(TensorExpr(a, b));
102  }

◆ operator*() [338/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b 
)
inline

Definition at line 852 of file Tensor4_times_Tensor2.hpp.

854  {
855  typedef const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
856  Dim4, i, j, k, l, m>
857  TensorExpr;
858  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
859  Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
860  }

◆ operator*() [339/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b 
)

Definition at line 216 of file Tensor4_times_Tensor2_double.hpp.

218  {
219  using TensorExpr
220  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
221  Dim0, i, j, k, l, l, i, Dim1, Dim2, Dim0,
222  Dim3, j, k, i, l>;
223  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
224  k>(TensorExpr(a, b));
225  }

◆ operator*() [340/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim1, Dim2, j, k> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b 
)
inline

Definition at line 294 of file Tensor4_times_Tensor2.hpp.

296  {
297  typedef const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
298  i, j, k, l>
299  TensorExpr;
300  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2, j,
301  k>(TensorExpr(a, b));
302  }

◆ operator*() [341/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &  b 
)

Definition at line 116 of file Tensor4_times_Tensor2_double.hpp.

118  {
119  using TensorExpr
120  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
121  Dim1, i, j, k, l, l, j, Dim0, Dim2, Dim1,
122  Dim3, i, k, j, l>;
123  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2, i,
124  k>(TensorExpr(a, b));
125  }

◆ operator*() [342/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 66 of file Tensor4_times_Tensor2_double.hpp.

68  {
69  using TensorExpr
70  = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
71  Dim2, i, j, k, l, l, k, Dim0, Dim1, Dim2,
72  Dim3, i, j, k, l>;
73  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
74  j>(TensorExpr(a, b));
75  }

◆ operator*() [343/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr<const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)
inline

Definition at line 138 of file Tensor4_times_Tensor2.hpp.

140  {
141  typedef const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
142  i, j, k, l>
143  TensorExpr;
144  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
145  j>(TensorExpr(a, b));
146  }

◆ operator*() [344/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b 
)

Definition at line 42 of file Tensor4_times_Tensor2_single.hpp.

44  {
45  using TensorExpr
46  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
47  Dim4, i, j, k, l, l, m, Dim0, Dim1, Dim2,
48  Dim3, Dim4, i, j, k, l, m>;
49  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
50  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
51  }

◆ operator*() [345/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b 
)
inline

Definition at line 432 of file Tensor4_times_Tensor2.hpp.

434  {
435  typedef const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
436  Dim4, i, j, k, l, m>
437  TensorExpr;
438  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
439  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
440  }

◆ operator*() [346/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &  b 
)

Definition at line 218 of file Tensor4_times_Tensor2_single.hpp.

220  {
221  using TensorExpr
222  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
223  Dim0, i, j, k, l, m, i, Dim1, Dim2, Dim3,
224  Dim0, Dim4, j, k, l, i, m>;
225  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim1, Dim2,
226  Dim3, Dim4, j, k, l, m>(TensorExpr(a, b));
227  }

◆ operator*() [347/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b 
)

Definition at line 168 of file Tensor4_times_Tensor2_single.hpp.

170  {
171  using TensorExpr
172  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
173  Dim1, i, j, k, l, m, j, Dim0, Dim2, Dim3,
174  Dim1, Dim4, i, k, l, j, m>;
175  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim2,
176  Dim3, Dim4, i, k, l, m>(TensorExpr(a, b));
177  }

◆ operator*() [348/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b 
)
inline

Definition at line 642 of file Tensor4_times_Tensor2.hpp.

644  {
645  typedef const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
646  Dim4, i, j, k, l, m>
647  TensorExpr;
648  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim4,
649  Dim2, Dim3, i, m, k, l>(TensorExpr(a, b));
650  }

◆ operator*() [349/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b 
)

Definition at line 118 of file Tensor4_times_Tensor2_single.hpp.

120  {
121  using TensorExpr
122  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
123  Dim2, i, j, k, l, m, k, Dim0, Dim1, Dim3,
124  Dim2, Dim4, i, j, l, k, m>;
125  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
126  Dim3, Dim4, i, j, l, m>(TensorExpr(a, b));
127  }

◆ operator*() [350/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b 
)
inline

Definition at line 922 of file Tensor4_times_Tensor2.hpp.

924  {
925  typedef const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
926  Dim4, i, j, k, l, m>
927  TensorExpr;
928  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
929  Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
930  }

◆ operator*() [351/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b 
)

Definition at line 68 of file Tensor4_times_Tensor2_single.hpp.

70  {
71  using TensorExpr
72  = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
73  Dim3, i, j, k, l, m, l, Dim0, Dim1, Dim2,
74  Dim3, Dim4, i, j, k, l, m>;
75  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
76  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
77  }

◆ operator*() [352/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b 
)
inline

Definition at line 502 of file Tensor4_times_Tensor2.hpp.

504  {
505  typedef const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
506  Dim4, i, j, k, l, m>
507  TensorExpr;
508  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1,
509  Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
510  }

◆ operator*() [353/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b 
)

Definition at line 494 of file Tensor4_times_Tensor3_triple.hpp.

496  {
497  using TensorExpr
498  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
499  Dim1, Dim2, i, j, k, l, i, j, k, Dim3,
500  Dim0, Dim1, Dim2, l, i, j, k>;
502  TensorExpr(a, b));
503  }

◆ operator*() [354/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &  b 
)

Definition at line 344 of file Tensor4_times_Tensor3_triple.hpp.

346  {
347  using TensorExpr
348  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
349  Dim1, Dim3, i, j, k, l, i, j, l, Dim2,
350  Dim0, Dim1, Dim3, k, i, j, l>;
352  TensorExpr(a, b));
353  }

◆ operator*() [355/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b 
)

Definition at line 519 of file Tensor4_times_Tensor3_triple.hpp.

521  {
522  using TensorExpr
523  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
524  Dim2, Dim1, i, j, k, l, i, k, j, Dim3,
525  Dim0, Dim1, Dim2, l, i, j, k>;
527  TensorExpr(a, b));
528  }

◆ operator*() [356/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &  b 
)

Definition at line 194 of file Tensor4_times_Tensor3_triple.hpp.

196  {
197  using TensorExpr
198  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
199  Dim2, Dim3, i, j, k, l, i, k, l, Dim1,
200  Dim0, Dim2, Dim3, j, i, k, l>;
202  TensorExpr(a, b));
203  }

◆ operator*() [357/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &  b 
)

Definition at line 369 of file Tensor4_times_Tensor3_triple.hpp.

371  {
372  using TensorExpr
373  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
374  Dim3, Dim1, i, j, k, l, i, l, j, Dim2,
375  Dim0, Dim1, Dim3, k, i, j, l>;
377  TensorExpr(a, b));
378  }

◆ operator*() [358/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &  b 
)

Definition at line 219 of file Tensor4_times_Tensor3_triple.hpp.

221  {
222  using TensorExpr
223  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
224  Dim3, Dim2, i, j, k, l, i, l, k, Dim1,
225  Dim0, Dim2, Dim3, j, i, k, l>;
227  TensorExpr(a, b));
228  }

◆ operator*() [359/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b 
)

Definition at line 544 of file Tensor4_times_Tensor3_triple.hpp.

546  {
547  using TensorExpr
548  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
549  Dim0, Dim2, i, j, k, l, j, i, k, Dim3,
550  Dim0, Dim1, Dim2, l, i, j, k>;
552  TensorExpr(a, b));
553  }

◆ operator*() [360/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &  b 
)

Definition at line 394 of file Tensor4_times_Tensor3_triple.hpp.

396  {
397  using TensorExpr
398  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
399  Dim0, Dim3, i, j, k, l, j, i, l, Dim2,
400  Dim0, Dim1, Dim3, k, i, j, l>;
402  TensorExpr(a, b));
403  }

◆ operator*() [361/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b 
)

Definition at line 569 of file Tensor4_times_Tensor3_triple.hpp.

571  {
572  using TensorExpr
573  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
574  Dim2, Dim0, i, j, k, l, j, k, i, Dim3,
575  Dim0, Dim1, Dim2, l, i, j, k>;
577  TensorExpr(a, b));
578  }

◆ operator*() [362/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &  b 
)

Definition at line 44 of file Tensor4_times_Tensor3_triple.hpp.

46  {
47  using TensorExpr
48  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
49  Dim2, Dim3, i, j, k, l, j, k, l, Dim0,
50  Dim1, Dim2, Dim3, i, j, k, l>;
52  TensorExpr(a, b));
53  }

◆ operator*() [363/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &  b 
)

Definition at line 419 of file Tensor4_times_Tensor3_triple.hpp.

421  {
422  using TensorExpr
423  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
424  Dim3, Dim0, i, j, k, l, j, l, i, Dim2,
425  Dim0, Dim1, Dim3, k, i, j, l>;
427  TensorExpr(a, b));
428  }

◆ operator*() [364/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &  b 
)

Definition at line 69 of file Tensor4_times_Tensor3_triple.hpp.

71  {
72  using TensorExpr
73  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
74  Dim3, Dim2, i, j, k, l, j, l, k, Dim0,
75  Dim1, Dim2, Dim3, i, j, k, l>;
77  TensorExpr(a, b));
78  }

◆ operator*() [365/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b 
)

Definition at line 594 of file Tensor4_times_Tensor3_triple.hpp.

596  {
597  using TensorExpr
598  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
599  Dim0, Dim1, i, j, k, l, k, i, j, Dim3,
600  Dim0, Dim1, Dim2, l, i, j, k>;
602  TensorExpr(a, b));
603  }

◆ operator*() [366/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &  b 
)

Definition at line 244 of file Tensor4_times_Tensor3_triple.hpp.

246  {
247  using TensorExpr
248  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
249  Dim0, Dim3, i, j, k, l, k, i, l, Dim1,
250  Dim0, Dim2, Dim3, j, i, k, l>;
252  TensorExpr(a, b));
253  }

◆ operator*() [367/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b 
)

Definition at line 619 of file Tensor4_times_Tensor3_triple.hpp.

621  {
622  using TensorExpr
623  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
624  Dim1, Dim0, i, j, k, l, k, j, i, Dim3,
625  Dim0, Dim1, Dim2, l, i, j, k>;
627  TensorExpr(a, b));
628  }

◆ operator*() [368/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &  b 
)

Definition at line 94 of file Tensor4_times_Tensor3_triple.hpp.

96  {
97  using TensorExpr
98  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
99  Dim1, Dim3, i, j, k, l, k, j, l, Dim0,
100  Dim1, Dim2, Dim3, i, j, k, l>;
102  TensorExpr(a, b));
103  }

◆ operator*() [369/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &  b 
)

Definition at line 269 of file Tensor4_times_Tensor3_triple.hpp.

271  {
272  using TensorExpr
273  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
274  Dim3, Dim0, i, j, k, l, k, l, i, Dim1,
275  Dim0, Dim2, Dim3, j, i, k, l>;
277  TensorExpr(a, b));
278  }

◆ operator*() [370/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &  b 
)

Definition at line 119 of file Tensor4_times_Tensor3_triple.hpp.

121  {
122  using TensorExpr
123  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
124  Dim3, Dim1, i, j, k, l, k, l, j, Dim0,
125  Dim1, Dim2, Dim3, i, j, k, l>;
127  TensorExpr(a, b));
128  }

◆ operator*() [371/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim1, Dim4, i, j, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &  b 
)
inline

Definition at line 61 of file Tensor4_times_Tensor3_double.hpp.

62  {
63  typedef const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
64  Dim4, i, j, k, l, m>
65  TensorExpr;
66  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
67  i, j, m>(TensorExpr(a, b));
68  }

◆ operator*() [372/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &  b 
)

Definition at line 444 of file Tensor4_times_Tensor3_triple.hpp.

446  {
447  using TensorExpr
448  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
449  Dim0, Dim1, i, j, k, l, l, i, j, Dim2,
450  Dim0, Dim1, Dim3, k, i, j, l>;
452  TensorExpr(a, b));
453  }

◆ operator*() [373/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &  b 
)

Definition at line 294 of file Tensor4_times_Tensor3_triple.hpp.

296  {
297  using TensorExpr
298  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
299  Dim0, Dim2, i, j, k, l, l, i, k, Dim1,
300  Dim0, Dim2, Dim3, j, i, k, l>;
302  TensorExpr(a, b));
303  }

◆ operator*() [374/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &  b 
)

Definition at line 469 of file Tensor4_times_Tensor3_triple.hpp.

471  {
472  using TensorExpr
473  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
474  Dim1, Dim0, i, j, k, l, l, j, i, Dim2,
475  Dim0, Dim1, Dim3, k, i, j, l>;
477  TensorExpr(a, b));
478  }

◆ operator*() [375/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &  b 
)

Definition at line 144 of file Tensor4_times_Tensor3_triple.hpp.

146  {
147  using TensorExpr
148  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
149  Dim1, Dim2, i, j, k, l, l, j, k, Dim0,
150  Dim1, Dim2, Dim3, i, j, k, l>;
152  TensorExpr(a, b));
153  }

◆ operator*() [376/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &  b 
)

Definition at line 319 of file Tensor4_times_Tensor3_triple.hpp.

321  {
322  using TensorExpr
323  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
324  Dim2, Dim0, i, j, k, l, l, k, i, Dim1,
325  Dim0, Dim2, Dim3, j, i, k, l>;
327  TensorExpr(a, b));
328  }

◆ operator*() [377/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &  b 
)

Definition at line 169 of file Tensor4_times_Tensor3_triple.hpp.

171  {
172  using TensorExpr
173  = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
174  Dim2, Dim1, i, j, k, l, l, k, j, Dim0,
175  Dim1, Dim2, Dim3, i, j, k, l>;
177  TensorExpr(a, b));
178  }

◆ operator*() [378/392]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m>, typename promote<T, U>::V, Dim0, Dim3, Dim4, i, l, m> FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &  b 
)
inline

Definition at line 139 of file Tensor4_times_Tensor3_double.hpp.

140  {
141  typedef const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2,
142  Dim3, Dim4, i, j, k, l, m>
143  TensorExpr;
144  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim3, Dim4,
145  i, l, m>(TensorExpr(a, b));
146  }

◆ operator*() [379/392]

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>
auto FTensor::operator* ( 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 121 of file Tensor4_times_Tensor4_double.hpp.

122  {
123  using TensorExpr =
124  Tensor4_times_Tensor4_0145<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5,
125  i, j, k, l, m, n>;
126  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
127  Dim5, m, n, k, l>(TensorExpr(a, b));
128 }

◆ operator*() [380/392]

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>
auto FTensor::operator* ( 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 64 of file Tensor4_times_Tensor4_double.hpp.

65  {
66  using TensorExpr =
67  Tensor4_times_Tensor4_2345<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5,
68  i, j, k, l, m, n>;
69  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim4,
70  Dim5, i, j, m, n>(TensorExpr(a, b));
71 }

◆ operator*() [381/392]

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

Definition at line 6 of file Tensor4_times_generic.hpp.

7  {
8  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
9  const int N4) {
10  return a.operator()(N1, N2, N3, N4) * d0;
11  };
12  return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
13  Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
14 }

◆ operator*() [382/392]

template<class A , class B , char i, char j, char k, char l>
double FTensor::operator* ( const Tensor4_Expr< B, i, j, k, l > &  b,
const Riemann_Expr< A, i, j, k, l > &  a 
)

Definition at line 91 of file Riemann_times_Tensor4.hpp.

94  {
95  return operator*(a, b);
96  }

◆ operator*() [383/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr<Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n>, typename promote<T, U>::V, Dim0, Dim1, Dim23, Dim23, i, j, k, l> FTensor::operator* ( const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &  a 
)

Definition at line 146 of file Ddg_times_Tensor4.hpp.

147  {
148  using TensorExpr = Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0,
149  Dim1, i, j, k, l, m, n>;
150  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, Dim23,
151  Dim23, i, j, k, l>(TensorExpr(a, b));
152 }

◆ operator*() [384/392]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr<Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n>, typename promote<T, U>::V, Dim01, Dim01, Dim2, Dim3, i, j, k, l> FTensor::operator* ( const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &  a 
)

Definition at line 72 of file Ddg_times_Tensor4.hpp.

73  {
74  using TensorExpr = Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2,
75  Dim3, i, j, k, l, m, n>;
76  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim01, Dim2,
77  Dim3, i, j, k, l>(TensorExpr(a, b));
78 }

◆ operator*() [385/392]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator* ( const U &  d0,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 24 of file Ddg_times_generic.hpp.

25  {
26  auto TensorExpr
27  = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
28  return d0 * a(N1, N2, N3, N4);
29  };
30  return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
31  Dim23, i, j, k, l>(TensorExpr);
32  }

◆ operator*() [386/392]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_times_generic<A, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator* ( const U &  d0,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 45 of file Dg_times_generic.hpp.

46  {
47  using TensorExpr = Dg_times_generic<A, T, U, Dim01, Dim2, i, j, k>;
48  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
49  TensorExpr(a, d0));
50  }

◆ operator*() [387/392]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_times_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator* ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 44 of file Tensor1_times_generic.hpp.

45  {
46  using TensorExpr = Tensor1_times_generic<A, T, U, Dim, i>;
48  TensorExpr(a, d0));
49  }

◆ operator*() [388/392]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<Tensor2_times_generic<A, T, U, Dim0, Dim1, i, j>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator* ( const U &  d0,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 38 of file Tensor2_times_generic.hpp.

39  {
40  using TensorExpr = Tensor2_times_generic<A, T, U, Dim0, Dim1, i, j>;
41  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
42  j>(TensorExpr(a, d0));
43  }

◆ operator*() [389/392]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator* ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 20 of file Tensor2_symmetric_times_generic.hpp.

21  {
22  auto TensorExpr = [&a, d0](const int N1, const int N2) {
23  return d0 * a.operator()(N1, N2);
24  };
25  return Tensor2_symmetric_Expr<decltype(TensorExpr),
26  typename promote<T, U>::V, Dim, i, j>(
27  TensorExpr);
28  }

◆ operator*() [390/392]

template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic<A, T, U, Dim0, Dim12, i, j, k>, typename promote<T, U>::V, Dim0, Dim12, i, j, k> FTensor::operator* ( const U &  d0,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 52 of file Tensor3_antisymmetric_times_generic.hpp.

54  {
55  using TensorExpr
56  = Tensor3_antisymmetric_times_generic<A, T, U, Dim0, Dim12, i, j, k>;
57  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
58  Dim0, Dim12, i, j, k>(TensorExpr(a, d0));
59  }

◆ operator*() [391/392]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const U &  d0,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 25 of file Tensor3_times_generic.hpp.

27  {
28  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
29  return d0 * a.operator()(N1, N2, N3);
30  };
31  return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
32  Dim1, Dim2, i, j, k>(TensorExpr);
33  }

◆ operator*() [392/392]

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

Definition at line 20 of file Tensor4_times_generic.hpp.

22  {
23  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
24  const int N4) {
25  return d0 * a.operator()(N1, N2, N3, N4);
26  };
27  return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
28  Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
29 }

◆ operator+() [1/18]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim01_1, int Dim23_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
Ddg_Expr<Ddg_plus_Ddg<A, B, T, U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1>, typename promote<T, U>::V, Dim01_0, Dim23_0, i0, j0, k0, l0> FTensor::operator+ ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Ddg_Expr< B, U, Dim01_1, Dim23_1, i1, j1, k1, l1 > &  b 
)

Definition at line 66 of file Ddg_plus_Ddg.hpp.

68  {
69  using TensorExpr = Ddg_plus_Ddg<A, B, T, U, Dim01_0, Dim23_0, Dim01_1,
70  Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1>;
71  static_assert(
72  !std::is_empty<TensorExpr>::value,
73  "Indexes or Dimensions are not compatible with the + operator");
74  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01_0, Dim23_0,
75  i0, j0, k0, l0>(TensorExpr(a, b));
76  }

◆ operator+() [2/18]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr<Dg_plus_Dg_210<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, Dim, i, j, k> FTensor::operator+ ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 99 of file Dg_plus_Dg.hpp.

101  {
102  using TensorExpr = Dg_plus_Dg_210<A, B, T, U, Dim, i, j, k>;
103  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, Dim,
104  i, j, k>(TensorExpr(a, b));
105  }

◆ operator+() [3/18]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_plus_Dg<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator+ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  b 
)

Definition at line 33 of file Dg_plus_Dg.hpp.

35  {
36  using TensorExpr = Dg_plus_Dg<A, B, T, U, Dim01, Dim2, i, j, k>;
37  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
38  TensorExpr(a, b));
39  }

◆ operator+() [4/18]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_plus_Dg_10<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator+ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, j, i, k > &  b 
)

Definition at line 67 of file Dg_plus_Dg.hpp.

69  {
70  using TensorExpr = Dg_plus_Dg_10<A, B, T, U, Dim01, Dim2, i, j, k>;
71  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
72  TensorExpr(a, b));
73  }

◆ operator+() [5/18]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Riemann_plus_Riemann<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator+ ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Riemann_Expr< B, U, Dim, i, j, k, l > &  b 
)

Definition at line 32 of file Riemann_plus_Riemann.hpp.

34  {
35  using TensorExpr = Riemann_plus_Riemann<A, B, T, U, Dim, i, j, k, l>;
36  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
37  TensorExpr(a, b));
38  }

◆ operator+() [6/18]

template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr<Tensor1_plus_Tensor1<A, B, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator+ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 28 of file Tensor1_plus_Tensor1.hpp.

30  {
31  using TensorExpr = Tensor1_plus_Tensor1<A, B, T, U, Dim, i>;
33  TensorExpr(a, b));
34  }

◆ operator+() [7/18]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_plus_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator+ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_plus_generic.hpp.

33  {
34  using TensorExpr = Tensor1_plus_generic<A, T, U, Dim, i>;
36  TensorExpr(a, d0));
37  }

◆ operator+() [8/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_plus_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim0_0, Dim1_0, i0, j0> FTensor::operator+ ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_plus_Tensor2.hpp.

62  {
63  using TensorExpr = Tensor2_plus_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1,
64  Dim1_1, i0, j0, i1, j1>;
65  static_assert(
66  !std::is_empty<TensorExpr>::value,
67  "Indexes or Dimensions are not compatible with the + operator");
68  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
69  i0, j0>(TensorExpr(a, b));
70  }

◆ operator+() [9/18]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, Dim_0, i0, j0> FTensor::operator+ ( const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b,
const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a 
)

Definition at line 83 of file Tensor2_symmetric_plus_Tensor2.hpp.

85  {
86  using TensorExpr
87  = Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
88  j0, i1, j1>;
89  static_assert(
90  !std::is_empty<TensorExpr>::value,
91  "Indexes or Dimensions are not compatible with the + operator");
92  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim_0, Dim_0,
93  i0, j0>(TensorExpr(a, b));
94  }

◆ operator+() [10/18]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 9 of file Tensor2_symmetric_plus_generic.hpp.

10  {
11  auto TensorExpr = [&a, d0](const int N1, const int N2) {
12  return a.operator()(N1, N2) + d0;
13  };
14  return Tensor2_symmetric_Expr<decltype(TensorExpr),
15  typename promote<T, U>::V, Dim, i, j>(
16  TensorExpr);
17  }

◆ operator+() [11/18]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, Dim_0, i0, j0> FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_symmetric_plus_Tensor2.hpp.

62  {
63  using TensorExpr
64  = Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
65  j0, i1, j1>;
66  static_assert(
67  !std::is_empty<TensorExpr>::value,
68  "Indexes or Dimensions are not compatible with the + operator");
69  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim_0, Dim_0,
70  i0, j0>(TensorExpr(a, b));
71  }

◆ operator+() [12/18]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr<Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, i0, j0> FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_plus_Tensor2_symmetric.hpp.

65  {
66  using TensorExpr
67  = Tensor2_symmetric_plus_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68  j0, i1, j1>;
69  static_assert(
70  !std::is_empty<TensorExpr>::value,
71  "Indexes or Dimensions are not compatible with the + operator");
72  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
73  i0, j0>(TensorExpr(a, b));
74  }

◆ operator+() [13/18]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr<Tensor3_antisymmetric_plus_Tensor3_antisymmetric< A, B, T, U, Dim0, Dim12, i, j, k>, typename promote<T, U>::V, Dim0, Dim12, i, j, k> FTensor::operator+ ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  b 
)

Definition at line 36 of file Tensor3_antisymmetric_plus_Tensor3_antisymmetric.hpp.

38  {
39  using TensorExpr
40  = Tensor3_antisymmetric_plus_Tensor3_antisymmetric<A, B, T, U, Dim0,
41  Dim12, i, j, k>;
42  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
43  Dim0, Dim12, i, j, k>(TensorExpr(a, b));
44  }

◆ operator+() [14/18]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12<A, B, T, U, Dim0, Dim12, i, j, k>, typename promote<T, U>::V, Dim0, Dim12, i, j, k> FTensor::operator+ ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  b 
)

Definition at line 75 of file Tensor3_antisymmetric_plus_Tensor3_antisymmetric.hpp.

77  {
78  using TensorExpr
79  = Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12<A, B, T, U, Dim0,
80  Dim12, i, j, k>;
81  return Tensor3_antisymmetric_Expr<TensorExpr, typename promote<T, U>::V,
82  Dim0, Dim12, i, j, k>(TensorExpr(a, b));
83  }

◆ operator+() [15/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr<Tensor3_plus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>, typename promote<T, U>::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0> FTensor::operator+ ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 164 of file Tensor3_plus_Tensor3.hpp.

166  {
167  using TensorExpr
168  = Tensor3_plus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1,
169  Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>;
170  static_assert(
171  !std::is_empty<TensorExpr>::value,
172  "Indexes or Dimensions are not compatible with the + operator");
173  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
174  Dim2_0, i0, j0, k0>(TensorExpr(a, b));
175  }

◆ operator+() [16/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator+ ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 35 of file Tensor4_plus_Tensor4.hpp.

38  {
39  using TensorExpr
40  = Tensor4_plus_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0,
41  Dim0_1, Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0,
42  i1, j1, k1, l1>;
43  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
44  Dim2_0, Dim3_0, i0, j0, k0, l0>(TensorExpr(a, b));
45  }

◆ operator+() [17/18]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_plus_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator+ ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 44 of file Tensor1_plus_generic.hpp.

45  {
46  using TensorExpr = Tensor1_plus_generic<A, T, U, Dim, i>;
48  TensorExpr(a, d0));
49  }

◆ operator+() [18/18]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator+ ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 20 of file Tensor2_symmetric_plus_generic.hpp.

21  {
22  auto TensorExpr = [&a, d0](const int N1, const int N2) {
23  return a.operator()(N1, N2) + d0;
24  };
25  return Tensor2_symmetric_Expr<decltype(TensorExpr),
26  typename promote<T, U>::V, Dim, i, j>(
27  TensorExpr);
28  }

◆ operator-() [1/21]

template<class A , class T , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr<minus_Ddg<A, T, Dim01, Dim23, i, j, k, l>, T, Dim01, Dim23, i, j, k, l> FTensor::operator- ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a)

Definition at line 26 of file minus_Ddg.hpp.

27  {
28  using TensorExpr = minus_Ddg<A, T, Dim01, Dim23, i, j, k, l>;
29  return Ddg_Expr<TensorExpr, T, Dim01, Dim23, i, j, k, l>(TensorExpr(a));
30  }

◆ operator-() [2/21]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr<Ddg_minus_Ddg<A, B, T, U, Dim01, Dim23, i, j, k, l>, typename promote<T, U>::V, Dim01, Dim23, i, j, k, l> FTensor::operator- ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  b 
)

Definition at line 33 of file Ddg_minus_Ddg.hpp.

35  {
36  using TensorExpr = Ddg_minus_Ddg<A, B, T, U, Dim01, Dim23, i, j, k, l>;
37  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j,
38  k, l>(TensorExpr(a, b));
39  }

◆ operator-() [3/21]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr<Dg_minus_Dg_02<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, Dim, i, j, k> FTensor::operator- ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 66 of file Dg_minus_Dg.hpp.

68  {
69  using TensorExpr = Dg_minus_Dg_02<A, B, T, U, Dim, i, j, k>;
70  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, Dim,
71  i, j, k>(TensorExpr(a, b));
72  }

◆ operator-() [4/21]

template<class A , class T , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<minus_Dg<A, T, Dim01, Dim2, i, j, k>, T, Dim01, Dim2, i, j, k> FTensor::operator- ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a)

Definition at line 23 of file minus_Dg.hpp.

24  {
25  using TensorExpr = minus_Dg<A, T, Dim01, Dim2, i, j, k>;
26  return Dg_Expr<TensorExpr, T, Dim01, Dim2, i, j, k>(TensorExpr(a));
27  }

◆ operator-() [5/21]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_minus_Dg<A, B, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator- ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  b 
)

Definition at line 34 of file Dg_minus_Dg.hpp.

36  {
37  using TensorExpr = Dg_minus_Dg<A, B, T, U, Dim01, Dim2, i, j, k>;
38  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
39  TensorExpr(a, b));
40  }

◆ operator-() [6/21]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr<Riemann_minus_Riemann<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, j, k, l> FTensor::operator- ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Riemann_Expr< B, U, Dim, i, j, k, l > &  b 
)

Definition at line 32 of file Riemann_minus_Riemann.hpp.

34  {
35  using TensorExpr = Riemann_minus_Riemann<A, B, T, U, Dim, i, j, k, l>;
36  return Riemann_Expr<TensorExpr, typename promote<T, U>::V, Dim, i, j, k, l>(
37  TensorExpr(a, b));
38  }

◆ operator-() [7/21]

template<class A , class T , int Dim, char i>
Tensor1_Expr<minus_Tensor1<A, T, Dim, i>, T, Dim, i> FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a)

Definition at line 19 of file minus_Tensor1.hpp.

20  {
21  using TensorExpr = minus_Tensor1<A, T, Dim, i>;
22  return Tensor1_Expr<TensorExpr, T, Dim, i>(TensorExpr(a));
23  }

◆ operator-() [8/21]

template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr<Tensor1_minus_Tensor1<A, B, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 28 of file Tensor1_minus_Tensor1.hpp.

30  {
31  using TensorExpr = Tensor1_minus_Tensor1<A, B, T, U, Dim, i>;
33  TensorExpr(a, b));
34  }

◆ operator-() [9/21]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_minus_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_minus_generic.hpp.

33  {
34  using TensorExpr = Tensor1_minus_generic<A, T, U, Dim, i>;
36  TensorExpr(a, d0));
37  }

◆ operator-() [10/21]

template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<minus_Tensor2<A, T, Dim0, Dim1, i, j>, T, Dim0, Dim1, i, j> FTensor::operator- ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a)

Definition at line 20 of file minus_Tensor2.hpp.

21  {
22  using TensorExpr = minus_Tensor2<A, T, Dim0, Dim1, i, j>;
23  return Tensor2_Expr<TensorExpr, T, Dim0, Dim1, i, j>(TensorExpr(a));
24  }

◆ operator-() [11/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_minus_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim0_0, Dim1_0, i0, j0> FTensor::operator- ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_minus_Tensor2.hpp.

62  {
63  using TensorExpr = Tensor2_minus_Tensor2<A, B, T, U, Dim0_0, Dim1_0,
64  Dim0_1, Dim1_1, i0, j0, i1, j1>;
65  static_assert(
66  !std::is_empty<TensorExpr>::value,
67  "Indexes or Dimensions are not compatible with the - operator");
68  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
69  i0, j0>(TensorExpr(a, b));
70  }

◆ operator-() [12/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_minus_Tensor2_symmetric<A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim0_0, Dim1_0, i0, j0> FTensor::operator- ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 129 of file Tensor2_symmetric_minus_Tensor2.hpp.

131  {
132  using TensorExpr
133  = Tensor2_minus_Tensor2_symmetric<A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0,
134  j0, i1, j1>;
135  static_assert(
136  !std::is_empty<TensorExpr>::value,
137  "Indexes or Dimensions are not compatible with the - operator");
138  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
139  i0, j0>(TensorExpr(a, b));
140  }

◆ operator-() [13/21]

template<class A , class T , int Dim, char i, char j>
Tensor2_symmetric_Expr<minus_Tensor2_symmetric<A, T, Dim, i, j>, T, Dim, i, j> FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a)

Definition at line 22 of file minus_Tensor2_symmetric.hpp.

23  {
24  using TensorExpr = minus_Tensor2_symmetric<A, T, Dim, i, j>;
25  return Tensor2_symmetric_Expr<TensorExpr, T, Dim, i, j>(TensorExpr(a));
26  }

◆ operator-() [14/21]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr<Tensor2_symmetric_minus_generic<A, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i, j> FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 29 of file Tensor2_symmetric_minus_generic.hpp.

30  {
31  using TensorExpr = Tensor2_symmetric_minus_generic<A, T, U, Dim, i, j>;
32  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
33  i, j>(TensorExpr(a, d0));
34  }

◆ operator-() [15/21]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr<Tensor2_symmetric_minus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, Dim_0, i0, j0> FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 61 of file Tensor2_symmetric_minus_Tensor2.hpp.

63  {
64  using TensorExpr
65  = Tensor2_symmetric_minus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
66  j0, i1, j1>;
67  static_assert(
68  !std::is_empty<TensorExpr>::value,
69  "Indexes or Dimensions are not compatible with the - operator");
70  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim_0, Dim_0,
71  i0, j0>(TensorExpr(a, b));
72  }

◆ operator-() [16/21]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr<Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim_0, i0, j0> FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_minus_Tensor2_symmetric.hpp.

65  {
66  using TensorExpr
67  = Tensor2_symmetric_minus_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68  j0, i1, j1>;
69  static_assert(
70  !std::is_empty<TensorExpr>::value,
71  "Indexes or Dimensions are not compatible with the - operator");
72  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
73  i0, j0>(TensorExpr(a, b));
74  }

◆ operator-() [17/21]

template<class A , class T , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr<minus_Tensor3<A, T, Dim0, Dim1, Dim2, i, j, k>, T, Dim0, Dim1, Dim2, i, j, k> FTensor::operator- ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a)

Definition at line 315 of file Tensor3_Expr.hpp.

315  {
316  using TensorExpr = minus_Tensor3<A, T, Dim0, Dim1, Dim2, i, j, k>;
317  return Tensor3_Expr<TensorExpr, T, Dim0, Dim1, Dim2, i, j, k>(
318  TensorExpr(a));
319  }

◆ operator-() [18/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr<Tensor3_minus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>, typename promote<T, U>::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0> FTensor::operator- ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 164 of file Tensor3_minus_Tensor3.hpp.

166  {
167  using TensorExpr
168  = Tensor3_minus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1,
169  Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>;
170  static_assert(
171  !std::is_empty<TensorExpr>::value,
172  "Indexes or Dimensions are not compatible with the - operator");
173  return Tensor3_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
174  Dim2_0, i0, j0, k0>(TensorExpr(a, b));
175  }

◆ operator-() [19/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator- ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 35 of file Tensor4_minus_Tensor4.hpp.

38  {
39  using TensorExpr
40  = Tensor4_minus_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0,
41  Dim0_1, Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0,
42  i1, j1, k1, l1>;
43  return Tensor4_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0,
44  Dim2_0, Dim3_0, i0, j0, k0, l0>(TensorExpr(a, b));
45  }

◆ operator-() [20/21]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<generic_minus_Tensor1<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator- ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 27 of file generic_minus_Tensor1.hpp.

28  {
29  using TensorExpr = generic_minus_Tensor1<A, T, U, Dim, i>;
31  TensorExpr(a, d0));
32  }

◆ operator-() [21/21]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr<generic_minus_Tensor2_symmetric<A, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i, j> FTensor::operator- ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 28 of file generic_minus_Tensor2_symmetric.hpp.

29  {
30  using TensorExpr = generic_minus_Tensor2_symmetric<A, T, U, Dim, i, j>;
31  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
32  i, j>(TensorExpr(a, d0));
33  }

◆ operator/() [1/9]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator/ ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 36 of file Ddg_times_generic.hpp.

37  {
38  auto TensorExpr
39  = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
40  return a(N1, N2, N3, N4) / d0;
41  };
42  return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
43  Dim23, i, j, k, l>(TensorExpr);
44  }

◆ operator/() [2/9]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr<Dg_divide_generic<A, T, U, Dim01, Dim2, i, j, k>, typename promote<T, U>::V, Dim01, Dim2, i, j, k> FTensor::operator/ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 33 of file Dg_divide_generic.hpp.

34  {
35  using TensorExpr = Dg_divide_generic<A, T, U, Dim01, Dim2, i, j, k>;
36  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
37  TensorExpr(a, d0));
38  }

◆ operator/() [3/9]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr<Tensor1_divide_generic<A, T, U, Dim, i>, typename promote<T, U>::V, Dim, i> FTensor::operator/ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 31 of file Tensor1_divide_generic.hpp.

32  {
33  using TensorExpr = Tensor1_divide_generic<A, T, U, Dim, i>;
35  TensorExpr(a, d0));
36  }

◆ operator/() [4/9]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<Tensor2_divide_generic<A, T, U, Dim0, Dim1, i, j>, typename promote<T, U>::V, Dim0, Dim1, i, j> FTensor::operator/ ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const U &  d0 
)

Definition at line 28 of file Tensor2_divide_generic.hpp.

29  {
30  using TensorExpr = Tensor2_divide_generic<A, T, U, Dim0, Dim1, i, j>;
31  return Tensor2_Expr<TensorExpr, typename promote<T, U>::V, Dim0, Dim1, i,
32  j>(TensorExpr(a, d0));
33  }

◆ operator/() [5/9]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr<Tensor2_symmetric_divide_generic<A, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i, j> FTensor::operator/ ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 29 of file Tensor2_symmetric_divide_generic.hpp.

30  {
31  using TensorExpr = Tensor2_symmetric_divide_generic<A, T, U, Dim, i, j>;
32  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
33  i, j>(TensorExpr(a, d0));
34  }

◆ operator/() [6/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator/ ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 39 of file Tensor3_times_generic.hpp.

41  {
42  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
43  return a.operator()(N1, N2, N3) / d0;
44  };
45  return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
46  Dim1, Dim2, i, j, k>(TensorExpr);
47  }

◆ operator/() [7/9]

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

Definition at line 35 of file Tensor4_times_generic.hpp.

36  {
37  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
38  const int N4) {
39  return a.operator()(N1, N2, N3) / d0;
40  };
41  return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
42  Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
43 }

◆ operator/() [8/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator/ ( const U &  d0,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 53 of file Tensor3_times_generic.hpp.

55  {
56  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
57  return d0 / a.operator()(N1, N2, N3);
58  };
59  return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
60  Dim1, Dim2, i, j, k>(TensorExpr);
61  }

◆ operator/() [9/9]

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

Definition at line 49 of file Tensor4_times_generic.hpp.

51  {
52  auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
53  const int N4) {
54  return d0 / a.operator()(N1, N2, N3, N4);
55  };
56  return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
57  Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
58 }

◆ operator<<() [1/3]

template<class T , int Tensor_Dim>
std::ostream& FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor1< T, Tensor_Dim > &  t 
)

Definition at line 95 of file Tensor1_value.hpp.

96  {
97  os << '[';
98  for (int i = 0; i + 1 < Tensor_Dim; ++i) {
99  os << t(i) << ',';
100  }
101  if (Tensor_Dim > 0) {
102  os << t(Tensor_Dim - 1);
103  }
104  os << ']';
105  return os;
106  }

◆ operator<<() [2/3]

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream& FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t 
)

Definition at line 249 of file Tensor2_value.hpp.

250  {
251  os << '[';
252  for (int i = 0; i + 1 < Tensor_Dim0; ++i) {
254  os << ',';
255  }
256  if (Tensor_Dim0 > 0) {
257  FTensor::Tensor2_ostream_row(os, t, Tensor_Dim0 - 1);
258  }
259  os << ']';
260  return os;
261  }

◆ operator<<() [3/3]

template<class T , int Tensor_Dim>
std::ostream& FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t 
)

Definition at line 271 of file Tensor2_symmetric_value.hpp.

272  {
273  os << '[';
274  for (int i = 0; i + 1 < Tensor_Dim; ++i) {
276  os << ',';
277  }
278  if (Tensor_Dim > 0) {
279  FTensor::Tensor2_symmetric_ostream_row(os, t, Tensor_Dim - 1);
280  }
281  os << ']';
282  return os;
283  }

◆ operator>>() [1/3]

template<class T , int Tensor_Dim>
std::istream& FTensor::operator>> ( std::istream &  is,
FTensor::Tensor1< T, Tensor_Dim > &  t 
)

Definition at line 109 of file Tensor1_value.hpp.

110  {
111  char c;
112  is >> c;
113  for (int i = 0; i + 1 < Tensor_Dim; ++i) {
114  is >> t(i) >> c;
115  }
116  if (Tensor_Dim > 0) {
117  is >> t(Tensor_Dim - 1);
118  }
119  is >> c;
120  return is;
121  }

◆ operator>>() [2/3]

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream& FTensor::operator>> ( std::istream &  is,
FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t 
)

Definition at line 287 of file Tensor2_value.hpp.

288  {
289  char c;
290  is >> c;
291  for (int i = 0; i + 1 < Tensor_Dim0; ++i) {
293  is >> c;
294  }
295  if (Tensor_Dim0 > 0) {
296  FTensor::Tensor2_istream_row(is, t, Tensor_Dim0 - 1);
297  }
298  is >> c;
299  return is;
300  }

◆ operator>>() [3/3]

template<class T , int Tensor_Dim>
std::istream& FTensor::operator>> ( std::istream &  is,
FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t 
)

Definition at line 309 of file Tensor2_symmetric_value.hpp.

310  {
311  char c;
312  is >> c;
313  for (int i = 0; i + 1 < Tensor_Dim; ++i) {
315  is >> c;
316  }
317  if (Tensor_Dim > 0) {
318  FTensor::Tensor2_symmetric_istream_row(is, t, Tensor_Dim - 1);
319  }
320  is >> c;
321  return is;
322  }

◆ operator^() [1/8]

template<class A , class B , class T , class U , int Dim, int Dim23, char i, char j, char k, char l, char m, char n>
Ddg_Expr<Ddg_carat_Ddg_13<A, B, T, U, Dim, Dim23, i, j, k, l, m, n>, typename promote<T, U>::V, Dim, Dim23, i, k, m, n> FTensor::operator^ ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim23, j, l, m, n > &  b 
)

Definition at line 59 of file Ddg_carat_Ddg.hpp.

61  {
62  using TensorExpr
63  = Ddg_carat_Ddg_13<A, B, T, U, Dim, Dim23, i, j, k, l, m, n>;
64  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim23, i, k, m,
65  n>(TensorExpr(a, b));
66  }

◆ operator^() [2/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, k> FTensor::operator^ ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 59 of file Ddg_carat_Tensor2_symmetric.hpp.

61  {
62  using TensorExpr
63  = Ddg_carat_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
64  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
65  i, k>(TensorExpr(a, b));
66  }

◆ operator^() [3/8]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr<Tensor1_carat_Tensor1<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i, j> FTensor::operator^ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 28 of file Tensor1_carat_Tensor1.hpp.

30  {
31  using TensorExpr = Tensor1_carat_Tensor1<A, B, T, U, Dim, i, j>;
32  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
33  i, j>(TensorExpr(a, b));
34  }

◆ operator^() [4/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 152 of file Tensor2_carat_Tensor2.hpp.

154  {
155  using TensorExpr = Tensor2_carat_Tensor2<A, B, T, U, Dim0_0, Dim1_0,
156  Dim0_1, Dim1_1, i0, j0, i1, j1>;
157  static_assert(
158  !std::is_empty<TensorExpr>::value,
159  "Indexes or Dimensions are not compatible with the ^ operator");
160 
161  // Definition of Helper constexpr variables
162  constexpr int Dim = (i0 == i1 || i0 == j1) ? Dim1_0 : Dim0_0;
163  constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
164  j = (i1 == i0 || i1 == j0) ? j1 : i1;
165 
166  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
167  i, j>(TensorExpr(a, b));
168  }

◆ operator^() [5/8]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b,
const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a 
)

Definition at line 174 of file Tensor2_symmetric_carat_Tensor2.hpp.

176  {
177  using TensorExpr
178  = Tensor2_symmetric_carat_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
179  j0, i1, j1>;
180  static_assert(
181  !std::is_empty<TensorExpr>::value,
182  "Indexes or Dimensions are not compatible with the ^ operator");
183 
184  // Definition of Helper constexpr variables
185  constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
186  j = (i1 == i0 || i1 == j0) ? j1 : i1;
187 
188  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
189  i, j>(TensorExpr(a, b));
190  }

◆ operator^() [6/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr<Tensor2_symmetric_carat_Tensor2_symmetric<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, j, k, l> FTensor::operator^ ( const Tensor2_symmetric_Expr< A, T, Dim, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 40 of file Tensor2_symmetric_carat_Tensor2_symmetric.hpp.

41  {
42  using TensorExpr =
43  Tensor2_symmetric_carat_Tensor2_symmetric<A, B, T, U, Dim, i, j, k, l>;
44  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, j, k, l>(
45  TensorExpr(a, b));
46 }

◆ operator^() [7/8]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 152 of file Tensor2_symmetric_carat_Tensor2.hpp.

154  {
155  using TensorExpr
156  = Tensor2_symmetric_carat_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
157  j0, i1, j1>;
158  static_assert(
159  !std::is_empty<TensorExpr>::value,
160  "Indexes or Dimensions are not compatible with the ^ operator");
161 
162  // Definition of Helper constexpr variables
163  constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
164  j = (i1 == i0 || i1 == j0) ? j1 : i1;
165 
166  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim_0,
167  i, j>(TensorExpr(a, b));
168  }

◆ operator^() [8/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, k> FTensor::operator^ ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 75 of file Ddg_carat_Tensor2_symmetric.hpp.

77  {
78  using TensorExpr
79  = Ddg_carat_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
80  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
81  i, k>(TensorExpr(a, b));
82  }

◆ operator|() [1/2]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, k> FTensor::operator| ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 59 of file Ddg_or_Tensor2_symmetric.hpp.

61  {
62  using TensorExpr
63  = Ddg_or_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
64  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
65  i, k>(TensorExpr(a, b));
66  }

◆ operator|() [2/2]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, i, k> FTensor::operator| ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 75 of file Ddg_or_Tensor2_symmetric.hpp.

77  {
78  using TensorExpr
79  = Ddg_or_Tensor2_symmetric_13<A, B, T, U, Dim, i, j, k, l>;
80  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
81  i, k>(TensorExpr(a, b));
82  }

◆ operator||() [1/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr<Ddg_or_Ddg<A, B, T, U, Dim, i, j, k, l>, typename promote<T, U>::V, Dim, Dim, i, k, j, l> FTensor::operator|| ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_or_Ddg.hpp.

35  {
36  using TensorExpr = Ddg_or_Ddg<A, B, T, U, Dim, i, j, k, l>;
37  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k, j,
38  l>(TensorExpr(a, b));
39  }

◆ operator||() [2/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr<Dg_or_Dg_12<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, j, k, i> FTensor::operator|| ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, i, k, j > &  b 
)

Definition at line 32 of file Dg_or_Dg.hpp.

34  {
35  using TensorExpr = Dg_or_Dg_12<A, B, T, U, Dim, i, j, k>;
36  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, j, k, i>(
37  TensorExpr(a, b));
38  }

◆ operator||() [3/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr<Dg_or_Dg_02<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, j, k, i> FTensor::operator|| ( const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, i, j > &  b 
)

Definition at line 64 of file Dg_or_Dg.hpp.

66  {
67  using TensorExpr = Dg_or_Dg_02<A, B, T, U, Dim, i, j, k>;
68  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, j, k, i>(
69  TensorExpr(a, b));
70  }

◆ operator||() [4/8]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr<Tensor1_or_Tensor1<A, B, T, U, Dim, i, j>, typename promote<T, U>::V, Dim, i, j> FTensor::operator|| ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 28 of file Tensor1_or_Tensor1.hpp.

30  {
31  using TensorExpr = Tensor1_or_Tensor1<A, B, T, U, Dim, i, j>;
32  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V, Dim,
33  i, j>(TensorExpr(a, b));
34  }

◆ operator||() [5/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr<Tensor2_or_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1>, typename promote<T, U>::V, Dim0_0, i0, j0> FTensor::operator|| ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 61 of file Tensor2_or_Tensor2.hpp.

63  {
64  using TensorExpr = Tensor2_or_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1,
65  Dim1_1, i0, j0, i1, j1>;
66  static_assert(
67  !std::is_empty<TensorExpr>::value,
68  "Indexes or Dimensions are not compatible with the || operator");
69  return Tensor2_symmetric_Expr<TensorExpr, typename promote<T, U>::V,
70  Dim0_0, i0, j0>(TensorExpr(a, b));
71  }

◆ operator||() [6/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Tensor3_antisymmetric_or_Tensor3_antisymmetric<A, B, T, U, Dim, i, j, k>, typename promote<T, U>::V, Dim, Dim, i, k, j> FTensor::operator|| ( const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 33 of file Tensor3_antisymmetric_or_Tensor3_antisymmetric.hpp.

35  {
36  using TensorExpr
37  = Tensor3_antisymmetric_or_Tensor3_antisymmetric<A, B, T, U, Dim, i, j,
38  k>;
39  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim, Dim, i, k, j>(
40  TensorExpr(a, b));
41  }

◆ operator||() [7/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
auto FTensor::operator|| ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 90 of file Tensor3_or_Tensor3.hpp.

92  {
93  using TensorExpr =
94  Tensor3_or_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1,
95  Dim2_1, i0, j0, k0, i1, j1, k1>;
96  static_assert(
97  !std::is_empty<TensorExpr>::value,
98  "Indexes or Dimensions are not compatible with the || operator");
99 
100  // Definition of Helper constexpr variables
101  constexpr char i = (k0 == i1 || k0 == j1) ? ((i0 == i1) ? j0 : i0) : i0;
102  constexpr char j = (k0 == i1 || k0 == j1) ? k0 : j0;
103  constexpr char k = (k0 == i1 || k0 == j1) ? ((i0 == i1) ? i0 : j0) : k0;
104 
105  return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0, i,
106  j, k>(TensorExpr(a, b));
107  }

◆ operator||() [8/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator|| ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 39 of file Tensor4_or_Tensor4.hpp.

42  {
43  using TensorExpr =
44  Tensor4_or_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0, Dim0_1,
45  Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0, i1, j1, k1,
46  l1>;
47  static_assert(
48  !std::is_empty<TensorExpr>::value,
49  "Indexes or Dimensions are not compatible with the || operator");
50 
51  return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim2_1, i0,
52  j0, k0, l0>(TensorExpr(a, b));
53  }

◆ permute() [1/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U FTensor::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 at line 11 of file permute.hpp.

14  {
15  return Permutation2<Dim0_0, Dim0_1, i0, j0>().eval(rhs, N0, N1);
16  }

◆ permute() [2/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_01, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
U FTensor::permute ( const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &  ,
const Dg_Expr< B, U, Dim1_01, Dim1_2, i1, j1, k1 > &  rhs,
const int  N0,
const int  N1,
const int  N2 
)

Definition at line 32 of file permute.hpp.

34  {
35  return Permutation3<Dim0_0, Dim0_1, Dim0_2, i0, j0, k0>().eval(rhs, N0, N1,
36  N2);
37  }

◆ permute() [3/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_0, int Dim1_1, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
U FTensor::permute ( const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &  ,
const Tensor3_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, i1, j1, k1 > &  rhs,
const int  N0,
const int  N1,
const int  N2 
)

Definition at line 21 of file permute.hpp.

24  {
25  return Permutation3<Dim0_0, Dim0_1, Dim0_2, i0, j0, k0>().eval(rhs, N0, N1,
26  N2);
27  }

◆ permute() [4/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_01, int Dim1_23, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
U FTensor::permute ( const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &  ,
const Ddg_Expr< B, U, Dim1_01, Dim1_23, i1, j1, k1, l1 > &  rhs,
const int  N0,
const int  N1,
const int  N2,
const int  N3 
)

Definition at line 56 of file permute.hpp.

59  {
60  return Permutation4<Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0>().eval(
61  rhs, N0, N1, N2, N3);
62  }

◆ permute() [5/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
U FTensor::permute ( const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &  ,
const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i1, j1, k1, l1 > &  rhs,
const int  N0,
const int  N1,
const int  N2,
const int  N3 
)

Definition at line 43 of file permute.hpp.

48  {
49  return Permutation4<Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0>().eval(
50  rhs, N0, N1, N2, N3);
51  }

◆ permute_ref()

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U& FTensor::permute_ref ( 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 at line 66 of file permute.hpp.

68  {
69  return Permutation2<Dim0_0, Dim0_1, i0, j0>().eval_ref(rhs, N0, N1);
70  }

◆ T1_divide_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 273 of file Tensor1_Expr_equals.hpp.

274  {
275  iter(0) /= u;
276  }

◆ T1_divide_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_divide_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 266 of file Tensor1_Expr_equals.hpp.

267  {
268  iter(Current_Dim - 1) /= u;
269  T1_divide_equals_generic(iter, u, Number<Current_Dim - 1>());
270  }

◆ T1_equals_addolc_left_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_addolc_left_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)
inline

Definition at line 60 of file Tensor1_Expr_equals.hpp.

62  {
63  iter(0) <<= result(0);
64  }

◆ T1_equals_addolc_left_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_addolc_left_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)
inline

Definition at line 51 of file Tensor1_Expr_equals.hpp.

53  {
54  iter(Current_Dim - 1) <<= result(Current_Dim - 1);
55  T1_equals_addolc_left_T1(iter, result, Number<Current_Dim - 1>());
56  }

◆ T1_equals_addolc_right_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_addolc_right_T1 ( A iter,
Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)
inline

Definition at line 89 of file Tensor1_Expr_equals.hpp.

91  {
92  iter(0) >>= result(0);
93  }

◆ T1_equals_addolc_right_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_addolc_right_T1 ( A iter,
Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)
inline

Definition at line 80 of file Tensor1_Expr_equals.hpp.

82  {
83  iter(Current_Dim - 1) >>= result(Current_Dim - 1);
84  T1_equals_addolc_right_T1(iter, result, Number<Current_Dim - 1>());
85  }

◆ T1_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 174 of file Tensor1_Expr_equals.hpp.

175  {
176  iter(0) = u;
177  }

◆ T1_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 167 of file Tensor1_Expr_equals.hpp.

168  {
169  iter(Current_Dim - 1) = u;
170  T1_equals_generic(iter, u, Number<Current_Dim - 1>());
171  }

◆ T1_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 21 of file Tensor1_Expr_equals.hpp.

23  {
24  iter(0) = result(0);
25  }

◆ T1_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 13 of file Tensor1_Expr_equals.hpp.

15  {
16  iter(Current_Dim - 1) = result(Current_Dim - 1);
17  T1_equals_T1(iter, result, Number<Current_Dim - 1>());
18  }

◆ T1_minus_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 223 of file Tensor1_Expr_equals.hpp.

224  {
225  iter(0) -= u;
226  }

◆ T1_minus_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_minus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 216 of file Tensor1_Expr_equals.hpp.

217  {
218  iter(Current_Dim - 1) -= u;
219  T1_minus_equals_generic(iter, u, Number<Current_Dim - 1>());
220  }

◆ T1_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 143 of file Tensor1_Expr_equals.hpp.

145  {
146  iter(0) -= result(0);
147  }

◆ T1_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 135 of file Tensor1_Expr_equals.hpp.

137  {
138  iter(Current_Dim - 1) -= result(Current_Dim - 1);
139  T1_minus_equals_T1(iter, result, Number<Current_Dim - 1>());
140  }

◆ T1_plus_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 198 of file Tensor1_Expr_equals.hpp.

199  {
200  iter(0) += u;
201  }

◆ T1_plus_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_plus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 191 of file Tensor1_Expr_equals.hpp.

192  {
193  iter(Current_Dim - 1) += u;
194  T1_plus_equals_generic(iter, u, Number<Current_Dim - 1>());
195  }

◆ T1_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 116 of file Tensor1_Expr_equals.hpp.

118  {
119  iter(0) += result(0);
120  }

◆ T1_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 108 of file Tensor1_Expr_equals.hpp.

110  {
111  iter(Current_Dim - 1) += result(Current_Dim - 1);
112  T1_plus_equals_T1(iter, result, Number<Current_Dim - 1>());
113  }

◆ T1_times_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 248 of file Tensor1_Expr_equals.hpp.

249  {
250  iter(0) *= u;
251  }

◆ T1_times_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_times_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 241 of file Tensor1_Expr_equals.hpp.

242  {
243  iter(Current_Dim - 1) *= u;
244  T1_times_equals_generic(iter, u, Number<Current_Dim - 1>());
245  }

◆ T1_times_T1() [1/2]

template<class A , class B , class T , class U , int Dim, char i>
promote<T, U>::V FTensor::T1_times_T1 ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b,
const Number< 1 > &   
)

Definition at line 22 of file Tensor1_times_Tensor1.hpp.

24  {
25  return a(0) * b(0);
26  }

◆ T1_times_T1() [2/2]

template<class A , class B , class T , class U , int Dim, char i, int Current_Dim>
promote<T, U>::V FTensor::T1_times_T1 ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b,
const Number< Current_Dim > &   
)

Definition at line 13 of file Tensor1_times_Tensor1.hpp.

15  {
16  return a(Current_Dim - 1) * b(Current_Dim - 1)
17  + T1_times_T1(a, b, Number<Current_Dim - 1>());
18  }

◆ T2_times_switched_T2() [1/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote<T, U>::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 89 of file Tensor2_times_Tensor2.hpp.

92  {
93  return a(0, 0) * b(0, 0);
94  }

◆ T2_times_switched_T2() [2/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 77 of file Tensor2_times_Tensor2.hpp.

80  {
81  return a(0, Current_Dim1 - 1) * b(Current_Dim1 - 1, 0)
82  + T2_times_switched_T2(a, b, Number<Dim0>(),
83  Number<Current_Dim1 - 1>());
84  }

◆ T2_times_switched_T2() [3/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 63 of file Tensor2_times_Tensor2.hpp.

67  {
68  return a(Current_Dim0 - 1, Current_Dim1 - 1)
69  * b(Current_Dim1 - 1, Current_Dim0 - 1)
70  + T2_times_switched_T2(a, b, Number<Current_Dim0 - 1>(),
71  Number<Current_Dim1>());
72  }

◆ T2_times_T2() [1/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote<T, U>::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 42 of file Tensor2_times_Tensor2.hpp.

45  {
46  return a(0, 0) * b(0, 0);
47  }

◆ T2_times_T2() [2/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_times_Tensor2.hpp.

34  {
35  return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
36  + T2_times_T2(a, b, Number<Dim0>(), Number<Current_Dim1 - 1>());
37  }

◆ T2_times_T2() [3/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_times_Tensor2.hpp.

21  {
22  return a(Current_Dim0 - 1, Current_Dim1 - 1)
23  * b(Current_Dim0 - 1, Current_Dim1 - 1)
24  + T2_times_T2(a, b, Number<Current_Dim0 - 1>(),
25  Number<Current_Dim1>());
26  }

◆ T2rhs0_divide_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 517 of file Tensor1_Expr_equals.hpp.

519  {
520  iter(N, 0) /= u;
521  }

◆ T2rhs0_divide_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 509 of file Tensor1_Expr_equals.hpp.

511  {
512  iter(N, Current_Dim - 1) /= u;
513  T2rhs0_divide_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
514  }

◆ T2rhs0_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 409 of file Tensor1_Expr_equals.hpp.

411  {
412  iter(N, 0) = u;
413  }

◆ T2rhs0_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 401 of file Tensor1_Expr_equals.hpp.

403  {
404  iter(N, Current_Dim - 1) = u;
405  T2rhs0_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
406  }

◆ T2rhs0_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 300 of file Tensor1_Expr_equals.hpp.

302  {
303  iter(N, 0) = result(0);
304  }

◆ T2rhs0_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 292 of file Tensor1_Expr_equals.hpp.

294  {
295  iter(N, Current_Dim - 1) = result(Current_Dim - 1);
296  T2rhs0_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
297  }

◆ T2rhs0_minus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 463 of file Tensor1_Expr_equals.hpp.

465  {
466  iter(N, 0) -= u;
467  }

◆ T2rhs0_minus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 455 of file Tensor1_Expr_equals.hpp.

457  {
458  iter(N, Current_Dim - 1) -= u;
459  T2rhs0_minus_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
460  }

◆ T2rhs0_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 374 of file Tensor1_Expr_equals.hpp.

376  {
377  iter(N, 0) -= result(0);
378  }

◆ T2rhs0_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 365 of file Tensor1_Expr_equals.hpp.

367  {
368  iter(N, Current_Dim - 1) -= result(Current_Dim - 1);
369  T2rhs0_minus_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
370  }

◆ T2rhs0_plus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 436 of file Tensor1_Expr_equals.hpp.

438  {
439  iter(N, 0) += u;
440  }

◆ T2rhs0_plus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 428 of file Tensor1_Expr_equals.hpp.

430  {
431  iter(N, Current_Dim - 1) += u;
432  T2rhs0_plus_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
433  }

◆ T2rhs0_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 337 of file Tensor1_Expr_equals.hpp.

339  {
340  iter(N, 0) += result(0);
341  }

◆ T2rhs0_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 328 of file Tensor1_Expr_equals.hpp.

330  {
331  iter(N, Current_Dim - 1) += result(Current_Dim - 1);
332  T2rhs0_plus_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
333  }

◆ T2rhs0_times_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 490 of file Tensor1_Expr_equals.hpp.

492  {
493  iter(N, 0) *= u;
494  }

◆ T2rhs0_times_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 482 of file Tensor1_Expr_equals.hpp.

484  {
485  iter(N, Current_Dim - 1) *= u;
486  T2rhs0_times_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
487  }

◆ T2rhs1_divide_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 763 of file Tensor1_Expr_equals.hpp.

765  {
766  iter(0, N) /= u;
767  }

◆ T2rhs1_divide_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 755 of file Tensor1_Expr_equals.hpp.

757  {
758  iter(Current_Dim - 1, N) /= u;
759  T2rhs1_divide_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
760  }

◆ T2rhs1_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 655 of file Tensor1_Expr_equals.hpp.

657  {
658  iter(0, N) = u;
659  }

◆ T2rhs1_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 647 of file Tensor1_Expr_equals.hpp.

649  {
650  iter(Current_Dim - 1, N) = u;
651  T2rhs1_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
652  }

◆ T2rhs1_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 546 of file Tensor1_Expr_equals.hpp.

548  {
549  iter(0, N) = result(0);
550  }

◆ T2rhs1_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 538 of file Tensor1_Expr_equals.hpp.

540  {
541  iter(Current_Dim - 1, N) = result(Current_Dim - 1);
542  T2rhs1_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
543  }

◆ T2rhs1_minus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 709 of file Tensor1_Expr_equals.hpp.

711  {
712  iter(0, N) -= u;
713  }

◆ T2rhs1_minus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 701 of file Tensor1_Expr_equals.hpp.

703  {
704  iter(Current_Dim - 1, N) -= u;
705  T2rhs1_minus_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
706  }

◆ T2rhs1_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 620 of file Tensor1_Expr_equals.hpp.

622  {
623  iter(0, N) -= result(0);
624  }

◆ T2rhs1_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 611 of file Tensor1_Expr_equals.hpp.

613  {
614  iter(Current_Dim - 1, N) -= result(Current_Dim - 1);
615  T2rhs1_minus_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
616  }

◆ T2rhs1_plus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 682 of file Tensor1_Expr_equals.hpp.

684  {
685  iter(0, N) += u;
686  }

◆ T2rhs1_plus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 674 of file Tensor1_Expr_equals.hpp.

676  {
677  iter(Current_Dim - 1, N) += u;
678  T2rhs1_plus_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
679  }

◆ T2rhs1_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 583 of file Tensor1_Expr_equals.hpp.

585  {
586  iter(0, N) += result(0);
587  }

◆ T2rhs1_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 574 of file Tensor1_Expr_equals.hpp.

576  {
577  iter(Current_Dim - 1, N) += result(Current_Dim - 1);
578  T2rhs1_plus_equals_T1(iter, result, N1, Number<Current_Dim - 1>());
579  }

◆ T2rhs1_times_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 736 of file Tensor1_Expr_equals.hpp.

738  {
739  iter(0, N) *= u;
740  }

◆ T2rhs1_times_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 728 of file Tensor1_Expr_equals.hpp.

730  {
731  iter(Current_Dim - 1, N) *= u;
732  T2rhs1_times_equals_generic(iter, u, N1, Number<Current_Dim - 1>());
733  }

◆ T2s_and_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 243 of file Tensor2_symmetric_Expr_equals.hpp.

246  {
247  iter(0, 0) *= result(0, 0);
248  }

◆ T2s_and_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 232 of file Tensor2_symmetric_Expr_equals.hpp.

235  {
236  iter(0, Current_Dim1 - 1) *= result(0, Current_Dim1 - 1);
237  T2s_and_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
238  Number<Current_Dim1 - 1>());
239  }

◆ T2s_and_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 218 of file Tensor2_symmetric_Expr_equals.hpp.

222  {
223  iter(Current_Dim0 - 1, Current_Dim1 - 1)
224  *= result(Current_Dim0 - 1, Current_Dim1 - 1);
225  T2s_and_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
226  Number<Current_Dim1>());
227  }

◆ T2s_divide_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 467 of file Tensor2_symmetric_Expr_equals.hpp.

469  {
470  iter(0, 0) /= u;
471  }

◆ T2s_divide_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 458 of file Tensor2_symmetric_Expr_equals.hpp.

460  {
461  iter(0, Current_Dim1 - 1) /= u;
462  T2s_divide_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
463  Number<Current_Dim1 - 1>());
464  }

◆ T2s_divide_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 449 of file Tensor2_symmetric_Expr_equals.hpp.

451  {
452  iter(Current_Dim0 - 1, Current_Dim1 - 1) /= u;
453  T2s_divide_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
454  Number<Current_Dim1>());
455  }

◆ T2s_equals_adolc_left_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 89 of file Tensor2_symmetric_Expr_equals.hpp.

92  {
93  iter(0, 0) <<= result(0, 0);
94  }

◆ T2s_equals_adolc_left_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)
inline

Definition at line 79 of file Tensor2_symmetric_Expr_equals.hpp.

82  {
83  iter(0, Current_Dim1 - 1) <<= result(0, Current_Dim1 - 1);
84  T2s_equals_adolc_left_T2s(iter, result, Number<Current_Dim1 - 1>(),
85  Number<Current_Dim1 - 1>());
86  }

◆ T2s_equals_adolc_left_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)
inline

Definition at line 67 of file Tensor2_symmetric_Expr_equals.hpp.

70  {
71  iter(Current_Dim0 - 1, Current_Dim1 - 1)
72  <<= result(Current_Dim0 - 1, Current_Dim1 - 1);
73  T2s_equals_adolc_left_T2s(iter, result, Number<Current_Dim0 - 1>(),
74  Number<Current_Dim1>());
75  }

◆ T2s_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor2_symmetric_Expr_equals.hpp.

317  {
318  iter(0, 0) = u;
319  }

◆ T2s_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 306 of file Tensor2_symmetric_Expr_equals.hpp.

308  {
309  iter(0, Current_Dim1 - 1) = u;
310  T2s_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
311  Number<Current_Dim1 - 1>());
312  }

◆ T2s_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 297 of file Tensor2_symmetric_Expr_equals.hpp.

299  {
300  iter(Current_Dim0 - 1, Current_Dim1 - 1) = u;
301  T2s_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
302  Number<Current_Dim1>());
303  }

◆ T2s_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 36 of file Tensor2_symmetric_Expr_equals.hpp.

39  {
40  iter(0, 0) = result(0, 0);
41  }

◆ T2s_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 26 of file Tensor2_symmetric_Expr_equals.hpp.

29  {
30  iter(0, Current_Dim1 - 1) = result(0, Current_Dim1 - 1);
31  T2s_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
32  Number<Current_Dim1 - 1>());
33  }

◆ T2s_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 14 of file Tensor2_symmetric_Expr_equals.hpp.

17  {
18  iter(Current_Dim0 - 1, Current_Dim1 - 1)
19  = result(Current_Dim0 - 1, Current_Dim1 - 1);
20  T2s_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
21  Number<Current_Dim1>());
22  }

◆ T2s_minus_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 391 of file Tensor2_symmetric_Expr_equals.hpp.

393  {
394  iter(0, 0) -= u;
395  }

◆ T2s_minus_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 382 of file Tensor2_symmetric_Expr_equals.hpp.

384  {
385  iter(0, Current_Dim1 - 1) -= u;
386  T2s_minus_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
387  Number<Current_Dim1 - 1>());
388  }

◆ T2s_minus_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 373 of file Tensor2_symmetric_Expr_equals.hpp.

375  {
376  iter(Current_Dim0 - 1, Current_Dim1 - 1) -= u;
377  T2s_minus_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
378  Number<Current_Dim1>());
379  }

◆ T2s_minus_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 196 of file Tensor2_symmetric_Expr_equals.hpp.

199  {
200  iter(0, 0) -= result(0, 0);
201  }

◆ T2s_minus_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 185 of file Tensor2_symmetric_Expr_equals.hpp.

188  {
189  iter(0, Current_Dim1 - 1) -= result(0, Current_Dim1 - 1);
190  T2s_minus_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
191  Number<Current_Dim1 - 1>());
192  }

◆ T2s_minus_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 171 of file Tensor2_symmetric_Expr_equals.hpp.

175  {
176  iter(Current_Dim0 - 1, Current_Dim1 - 1)
177  -= result(Current_Dim0 - 1, Current_Dim1 - 1);
178  T2s_minus_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
179  Number<Current_Dim1>());
180  }

◆ T2s_plus_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 353 of file Tensor2_symmetric_Expr_equals.hpp.

355  {
356  iter(0, 0) += u;
357  }

◆ T2s_plus_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 344 of file Tensor2_symmetric_Expr_equals.hpp.

346  {
347  iter(0, Current_Dim1 - 1) += u;
348  T2s_plus_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
349  Number<Current_Dim1 - 1>());
350  }

◆ T2s_plus_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 335 of file Tensor2_symmetric_Expr_equals.hpp.

337  {
338  iter(Current_Dim0 - 1, Current_Dim1 - 1) += u;
339  T2s_plus_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
340  Number<Current_Dim1>());
341  }

◆ T2s_plus_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 149 of file Tensor2_symmetric_Expr_equals.hpp.

152  {
153  iter(0, 0) += result(0, 0);
154  }

◆ T2s_plus_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 138 of file Tensor2_symmetric_Expr_equals.hpp.

141  {
142  iter(0, Current_Dim1 - 1) += result(0, Current_Dim1 - 1);
143  T2s_plus_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
144  Number<Current_Dim1 - 1>());
145  }

◆ T2s_plus_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 124 of file Tensor2_symmetric_Expr_equals.hpp.

128  {
129  iter(Current_Dim0 - 1, Current_Dim1 - 1)
130  += result(Current_Dim0 - 1, Current_Dim1 - 1);
131  T2s_plus_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
132  Number<Current_Dim1>());
133  }

◆ T2s_times_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 429 of file Tensor2_symmetric_Expr_equals.hpp.

431  {
432  iter(0, 0) *= u;
433  }

◆ T2s_times_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 420 of file Tensor2_symmetric_Expr_equals.hpp.

422  {
423  iter(0, Current_Dim1 - 1) *= u;
424  T2s_times_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
425  Number<Current_Dim1 - 1>());
426  }

◆ T2s_times_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 411 of file Tensor2_symmetric_Expr_equals.hpp.

413  {
414  iter(Current_Dim0 - 1, Current_Dim1 - 1) *= u;
415  T2s_times_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
416  Number<Current_Dim1>());
417  }

◆ T2s_times_switched_T2s() [1/3]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 86 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

89  {
90  return a(0, 0) * b(0, 0);
91  }

◆ T2s_times_switched_T2s() [2/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 75 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

78  {
79  return a(0, Current_Dim1 - 1) * b(Current_Dim1 - 1, 0)
80  + T2s_times_switched_T2s(a, b, Number<Dim>(),
81  Number<Current_Dim1 - 1>());
82  }

◆ T2s_times_switched_T2s() [3/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 61 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

65  {
66  return a(Current_Dim0 - 1, Current_Dim1 - 1)
67  * b(Current_Dim1 - 1, Current_Dim0 - 1)
68  + T2s_times_switched_T2s(a, b, Number<Current_Dim0 - 1>(),
69  Number<Current_Dim1>());
70  }

◆ T2s_times_T2_01() [1/6]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 41 of file Tensor2_symmetric_times_Tensor2.hpp.

44  {
45  return a(0, 0) * b(0, 0);
46  }

◆ T2s_times_T2_01() [2/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_symmetric_times_Tensor2.hpp.

34  {
35  return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
36  + T2s_times_T2_01(a, b, Number<Dim>(), Number<Current_Dim1 - 1>());
37  }

◆ T2s_times_T2_01() [3/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_symmetric_times_Tensor2.hpp.

21  {
22  return a(Current_Dim0 - 1, Current_Dim1 - 1)
23  * b(Current_Dim0 - 1, Current_Dim1 - 1)
24  + T2s_times_T2_01(a, b, Number<Current_Dim0 - 1>(),
25  Number<Current_Dim1>());
26  }

◆ T2s_times_T2_01() [4/6]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 100 of file Tensor2_symmetric_times_Tensor2.hpp.

103  {
104  return a(0, 0) * b(0, 0);
105  }

◆ T2s_times_T2_01() [5/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 90 of file Tensor2_symmetric_times_Tensor2.hpp.

93  {
94  return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
95  + T2s_times_T2_01(a, b, Number<Dim>(), Number<Current_Dim1 - 1>());
96  }

◆ T2s_times_T2_01() [6/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 77 of file Tensor2_symmetric_times_Tensor2.hpp.

80  {
81  return a(Current_Dim0 - 1, Current_Dim1 - 1)
82  * b(Current_Dim0 - 1, Current_Dim1 - 1)
83  + T2s_times_T2_01(a, b, Number<Current_Dim0 - 1>(),
84  Number<Current_Dim1>());
85  }

◆ T2s_times_T2s() [1/3]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote<T, U>::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 41 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

44  {
45  return a(0, 0) * b(0, 0);
46  }

◆ T2s_times_T2s() [2/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

34  {
35  return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
36  + T2s_times_T2s(a, b, Number<Dim>(), Number<Current_Dim1 - 1>());
37  }

◆ T2s_times_T2s() [3/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote<T, U>::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

21  {
22  return a(Current_Dim0 - 1, Current_Dim1 - 1)
23  * b(Current_Dim0 - 1, Current_Dim1 - 1)
24  + T2s_times_T2s(a, b, Number<Current_Dim0 - 1>(),
25  Number<Current_Dim1>());
26  }

◆ T3_increment() [1/4]

template<class T , int Dim0, int Dim1, int Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 38 of file Tensor3_pointer.hpp.

40  {
41  iter.increment(Number<1>(), Number<1>(), Number<1>());
42 }

◆ T3_increment() [2/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)
inline

Definition at line 29 of file Tensor3_pointer.hpp.

31  {
32  iter.increment(Number<1>(), Number<1>(), Number<Current_Dim2>());
33  T3_increment(iter, Number<Dim0>(), Number<Dim1>(),
34  Number<Current_Dim2 - 1>());
35 }

◆ T3_increment() [3/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim1, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)
inline

Definition at line 20 of file Tensor3_pointer.hpp.

22  {
23  iter.increment(Number<1>(), Number<Current_Dim1>(), Number<Current_Dim2>());
24  T3_increment(iter, Number<Dim0>(), Number<Current_Dim1 - 1>(),
25  Number<Current_Dim2>());
26 }

◆ T3_increment() [4/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)
inline

Definition at line 8 of file Tensor3_pointer.hpp.

11  {
12  iter.increment(Number<Current_Dim0>(), Number<Current_Dim1>(),
13  Number<Current_Dim2>());
14  T3_increment(iter, Number<Current_Dim0 - 1>(), Number<Current_Dim1>(),
15  Number<Current_Dim2>());
16 }

◆ T3_times_T3_012() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 56 of file Tensor3_times_Tensor3.hpp.

59  {
60  return a(0, 0, 0) * b(0, 0, 0);
61  }

◆ T3_times_T3_012() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 43 of file Tensor3_times_Tensor3.hpp.

47  {
48  return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
49  + T3_times_T3_012(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
50  Number<Dim2>());
51  }

◆ T3_times_T3_012() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_times_Tensor3.hpp.

33  {
34  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
35  * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
36  + T3_times_T3_012(a, b, Number<Current_Dim0>(), Number<Dim1>(),
37  Number<Current_Dim2 - 1>());
38  }

◆ T3_times_T3_012() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_times_Tensor3.hpp.

18  {
19  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20  * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
21  + T3_times_T3_012(a, b, Number<Current_Dim0>(),
22  Number<Current_Dim1 - 1>(),
23  Number<Current_Dim2>());
24  }

◆ T3_times_T3_021() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 381 of file Tensor3_times_Tensor3.hpp.

384  {
385  return a(0, 0, 0) * b(0, 0, 0);
386  }

◆ T3_times_T3_021() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 368 of file Tensor3_times_Tensor3.hpp.

372  {
373  return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
374  + T3_times_T3_021(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
375  Number<Dim2>());
376  }

◆ T3_times_T3_021() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 354 of file Tensor3_times_Tensor3.hpp.

358  {
359  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
360  * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
361  + T3_times_T3_021(a, b, Number<Current_Dim0>(), Number<Dim1>(),
362  Number<Current_Dim2 - 1>());
363  }

◆ T3_times_T3_021() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 339 of file Tensor3_times_Tensor3.hpp.

343  {
344  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
345  * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
346  + T3_times_T3_021(a, b, Number<Current_Dim0>(),
347  Number<Current_Dim1 - 1>(),
348  Number<Current_Dim2>());
349  }

◆ T3_times_T3_102() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 251 of file Tensor3_times_Tensor3.hpp.

254  {
255  return a(0, 0, 0) * b(0, 0, 0);
256  }

◆ T3_times_T3_102() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 238 of file Tensor3_times_Tensor3.hpp.

242  {
243  return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
244  + T3_times_T3_102(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
245  Number<Dim2>());
246  }

◆ T3_times_T3_102() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 224 of file Tensor3_times_Tensor3.hpp.

228  {
229  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
230  * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
231  + T3_times_T3_102(a, b, Number<Current_Dim0>(), Number<Dim1>(),
232  Number<Current_Dim2 - 1>());
233  }

◆ T3_times_T3_102() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 209 of file Tensor3_times_Tensor3.hpp.

213  {
214  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
215  * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
216  + T3_times_T3_102(a, b, Number<Current_Dim0>(),
217  Number<Current_Dim1 - 1>(),
218  Number<Current_Dim2>());
219  }

◆ T3_times_T3_120() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 186 of file Tensor3_times_Tensor3.hpp.

189  {
190  return a(0, 0, 0) * b(0, 0, 0);
191  }

◆ T3_times_T3_120() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 173 of file Tensor3_times_Tensor3.hpp.

177  {
178  return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
179  + T3_times_T3_120(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
180  Number<Dim2>());
181  }

◆ T3_times_T3_120() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 159 of file Tensor3_times_Tensor3.hpp.

163  {
164  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
165  * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
166  + T3_times_T3_120(a, b, Number<Current_Dim0>(), Number<Dim1>(),
167  Number<Current_Dim2 - 1>());
168  }

◆ T3_times_T3_120() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 144 of file Tensor3_times_Tensor3.hpp.

148  {
149  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
150  * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
151  + T3_times_T3_120(a, b, Number<Current_Dim0>(),
152  Number<Current_Dim1 - 1>(),
153  Number<Current_Dim2>());
154  }

◆ T3_times_T3_201() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 121 of file Tensor3_times_Tensor3.hpp.

124  {
125  return a(0, 0, 0) * b(0, 0, 0);
126  }

◆ T3_times_T3_201() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 108 of file Tensor3_times_Tensor3.hpp.

112  {
113  return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
114  + T3_times_T3_201(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
115  Number<Dim2>());
116  }

◆ T3_times_T3_201() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 94 of file Tensor3_times_Tensor3.hpp.

98  {
99  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
100  * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
101  + T3_times_T3_201(a, b, Number<Current_Dim0>(), Number<Dim1>(),
102  Number<Current_Dim2 - 1>());
103  }

◆ T3_times_T3_201() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 79 of file Tensor3_times_Tensor3.hpp.

83  {
84  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
85  * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
86  + T3_times_T3_201(a, b, Number<Current_Dim0>(),
87  Number<Current_Dim1 - 1>(),
88  Number<Current_Dim2>());
89  }

◆ T3_times_T3_210() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor3_times_Tensor3.hpp.

319  {
320  return a(0, 0, 0) * b(0, 0, 0);
321  }

◆ T3_times_T3_210() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 303 of file Tensor3_times_Tensor3.hpp.

307  {
308  return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
309  + T3_times_T3_210(a, b, Number<Current_Dim0 - 1>(), Number<Dim1>(),
310  Number<Dim2>());
311  }

◆ T3_times_T3_210() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 289 of file Tensor3_times_Tensor3.hpp.

293  {
294  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
295  * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
296  + T3_times_T3_210(a, b, Number<Current_Dim0>(), Number<Dim1>(),
297  Number<Current_Dim2 - 1>());
298  }

◆ T3_times_T3_210() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 274 of file Tensor3_times_Tensor3.hpp.

278  {
279  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
280  * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
281  + T3_times_T3_210(a, b, Number<Current_Dim0>(),
282  Number<Current_Dim1 - 1>(),
283  Number<Current_Dim2>());
284  }

◆ T3_times_T3dg_012() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 56 of file Tensor3_times_Dg.hpp.

59  {
60  return a(0, 0, 0) * b(0, 0, 0);
61  }

◆ T3_times_T3dg_012() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 43 of file Tensor3_times_Dg.hpp.

47  {
48  return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
49  + T3_times_T3dg_012(a, b, Number<Current_Dim0 - 1>(), Number<Dim>(),
50  Number<Dim2>());
51  }

◆ T3_times_T3dg_012() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_times_Dg.hpp.

33  {
34  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
35  * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
36  + T3_times_T3dg_012(a, b, Number<Current_Dim0>(), Number<Dim>(),
37  Number<Current_Dim2 - 1>());
38  }

◆ T3_times_T3dg_012() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_times_Dg.hpp.

18  {
19  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20  * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
21  + T3_times_T3dg_012(a, b, Number<Current_Dim0>(),
22  Number<Current_Dim1 - 1>(),
23  Number<Current_Dim2>());
24  }

◆ T3_times_T3dg_021() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 381 of file Tensor3_times_Dg.hpp.

384  {
385  return a(0, 0, 0) * b(0, 0, 0);
386  }

◆ T3_times_T3dg_021() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 368 of file Tensor3_times_Dg.hpp.

372  {
373  return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
374  + T3_times_T3dg_021(a, b, Number<Current_Dim0 - 1>(),
375  Number<Dim1>(), Number<Dim>());
376  }

◆ T3_times_T3dg_021() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 354 of file Tensor3_times_Dg.hpp.

358  {
359  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
360  * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
361  + T3_times_T3dg_021(a, b, Number<Current_Dim0>(), Number<Dim1>(),
362  Number<Current_Dim2 - 1>());
363  }

◆ T3_times_T3dg_021() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 339 of file Tensor3_times_Dg.hpp.

343  {
344  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
345  * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
346  + T3_times_T3dg_021(a, b, Number<Current_Dim0>(),
347  Number<Current_Dim1 - 1>(),
348  Number<Current_Dim2>());
349  }

◆ T3_times_T3dg_102() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 251 of file Tensor3_times_Dg.hpp.

254  {
255  return a(0, 0, 0) * b(0, 0, 0);
256  }

◆ T3_times_T3dg_102() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 238 of file Tensor3_times_Dg.hpp.

242  {
243  return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
244  + T3_times_T3dg_102(a, b, Number<Current_Dim0 - 1>(), Number<Dim>(),
245  Number<Dim2>());
246  }

◆ T3_times_T3dg_102() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 224 of file Tensor3_times_Dg.hpp.

228  {
229  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
230  * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
231  + T3_times_T3dg_102(a, b, Number<Current_Dim0>(), Number<Dim>(),
232  Number<Current_Dim2 - 1>());
233  }

◆ T3_times_T3dg_102() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 209 of file Tensor3_times_Dg.hpp.

213  {
214  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
215  * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
216  + T3_times_T3dg_102(a, b, Number<Current_Dim0>(),
217  Number<Current_Dim1 - 1>(),
218  Number<Current_Dim2>());
219  }

◆ T3_times_T3dg_120() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 186 of file Tensor3_times_Dg.hpp.

189  {
190  return a(0, 0, 0) * b(0, 0, 0);
191  }

◆ T3_times_T3dg_120() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 173 of file Tensor3_times_Dg.hpp.

177  {
178  return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
179  + T3_times_T3dg_120(a, b, Number<Current_Dim0 - 1>(), Number<Dim>(),
180  Number<Dim>());
181  }

◆ T3_times_T3dg_120() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 159 of file Tensor3_times_Dg.hpp.

163  {
164  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
165  * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
166  + T3_times_T3dg_120(a, b, Number<Current_Dim0>(), Number<Dim>(),
167  Number<Current_Dim2 - 1>());
168  }

◆ T3_times_T3dg_120() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 144 of file Tensor3_times_Dg.hpp.

148  {
149  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
150  * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
151  + T3_times_T3dg_120(a, b, Number<Current_Dim0>(),
152  Number<Current_Dim1 - 1>(),
153  Number<Current_Dim2>());
154  }

◆ T3_times_T3dg_201() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 121 of file Tensor3_times_Dg.hpp.

124  {
125  return a(0, 0, 0) * b(0, 0, 0);
126  }

◆ T3_times_T3dg_201() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 108 of file Tensor3_times_Dg.hpp.

112  {
113  return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
114  + T3_times_T3dg_201(a, b, Number<Current_Dim0 - 1>(),
115  Number<Dim1>(), Number<Dim>());
116  }

◆ T3_times_T3dg_201() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 94 of file Tensor3_times_Dg.hpp.

98  {
99  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
100  * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
101  + T3_times_T3dg_201(a, b, Number<Current_Dim0>(), Number<Dim1>(),
102  Number<Current_Dim2 - 1>());
103  }

◆ T3_times_T3dg_201() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 79 of file Tensor3_times_Dg.hpp.

83  {
84  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
85  * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
86  + T3_times_T3dg_201(a, b, Number<Current_Dim0>(),
87  Number<Current_Dim1 - 1>(),
88  Number<Current_Dim2>());
89  }

◆ T3_times_T3dg_210() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote<T, U>::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor3_times_Dg.hpp.

319  {
320  return a(0, 0, 0) * b(0, 0, 0);
321  }

◆ T3_times_T3dg_210() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 303 of file Tensor3_times_Dg.hpp.

307  {
308  return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
309  + T3_times_T3dg_210(a, b, Number<Current_Dim0 - 1>(), Number<Dim>(),
310  Number<Dim>());
311  }

◆ T3_times_T3dg_210() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 289 of file Tensor3_times_Dg.hpp.

293  {
294  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
295  * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
296  + T3_times_T3dg_210(a, b, Number<Current_Dim0>(), Number<Dim>(),
297  Number<Current_Dim2 - 1>());
298  }

◆ T3_times_T3dg_210() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 274 of file Tensor3_times_Dg.hpp.

278  {
279  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
280  * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
281  + T3_times_T3dg_210(a, b, Number<Current_Dim0>(),
282  Number<Current_Dim1 - 1>(),
283  Number<Current_Dim2>());
284  }

◆ T3as_equals_T3as() [1/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 53 of file Tensor3_antisymmetric_Expr_equals.hpp.

57  {
58  iter.unsafe(0, 0, 1) = result(0, 0, 1);
59  }

◆ T3as_equals_T3as() [2/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 41 of file Tensor3_antisymmetric_Expr_equals.hpp.

45  {
46  iter.unsafe(Current_Dim0 - 1, 0, 1) = result(Current_Dim0 - 1, 0, 1);
47  T3as_equals_T3as(iter, result, Number<Current_Dim0 - 1>(),
48  Number<Dim12 - 1>(), Number<Dim12>());
49  }

◆ T3as_equals_T3as() [3/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 27 of file Tensor3_antisymmetric_Expr_equals.hpp.

32  {
33  iter.unsafe(Current_Dim0 - 1, 0, Current_Dim2 - 1)
34  = result(Current_Dim0 - 1, 0, Current_Dim2 - 1);
35  T3as_equals_T3as(iter, result, Number<Current_Dim0>(),
36  Number<Current_Dim2 - 2>(), Number<Current_Dim2 - 1>());
37  }

◆ T3as_equals_T3as() [4/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 13 of file Tensor3_antisymmetric_Expr_equals.hpp.

18  {
19  iter.unsafe(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20  = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
21  T3as_equals_T3as(iter, result, Number<Current_Dim0>(),
22  Number<Current_Dim1 - 1>(), Number<Current_Dim2>());
23  }

◆ T3as_switched_equals_T3as() [1/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 135 of file Tensor3_antisymmetric_Expr_equals.hpp.

139  {
140  iter.unsafe(0, 0, 1) = -result(0, 0, 1);
141  }

◆ T3as_switched_equals_T3as() [2/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 123 of file Tensor3_antisymmetric_Expr_equals.hpp.

127  {
128  iter.unsafe(Current_Dim0 - 1, 0, 1) = -result(Current_Dim0 - 1, 0, 1);
129  T3as_switched_equals_T3as(iter, result, Number<Current_Dim0 - 1>(),
130  Number<Dim12 - 1>(), Number<Dim12>());
131  }

◆ T3as_switched_equals_T3as() [3/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 108 of file Tensor3_antisymmetric_Expr_equals.hpp.

113  {
114  iter.unsafe(Current_Dim0 - 1, 0, Current_Dim2 - 1)
115  = -result(Current_Dim0 - 1, 0, Current_Dim2 - 1);
116  T3as_switched_equals_T3as(iter, result, Number<Current_Dim0>(),
117  Number<Current_Dim2 - 2>(),
118  Number<Current_Dim2 - 1>());
119  }

◆ T3as_switched_equals_T3as() [4/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 93 of file Tensor3_antisymmetric_Expr_equals.hpp.

98  {
99  iter.unsafe(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
100  = -result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
101  T3as_switched_equals_T3as(iter, result, Number<Current_Dim0>(),
102  Number<Current_Dim1 - 1>(),
103  Number<Current_Dim2>());
104  }

◆ T3as_times_T3_012() [1/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 70 of file Tensor3_antisymmetric_times_Tensor3.hpp.

74  {
75  return a(0, 1, 0) * b(0, 1, 0);
76  }

◆ T3as_times_T3_012() [2/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_antisymmetric_times_Tensor3.hpp.

34  {
35  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
36  * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
37  + T3as_times_T3_012(a, b, Number<Current_Dim0>(), Number<Dim12>(),
38  Number<Current_Dim2 - 1>());
39  }

◆ T3as_times_T3_012() [3/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 58 of file Tensor3_antisymmetric_times_Tensor3.hpp.

62  {
63  return a(Current_Dim0 - 1, 1, 0) * b(Current_Dim0 - 1, 1, 0)
64  + T3as_times_T3_012(a, b, Number<Current_Dim0 - 1>(),
65  Number<Dim12 - 1>(), Number<Dim12>());
66  }

◆ T3as_times_T3_012() [4/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_antisymmetric_times_Tensor3.hpp.

19  {
20  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
21  * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
22  + T3as_times_T3_012(a, b, Number<Current_Dim0>(),
23  Number<Current_Dim1 - 1>(),
24  Number<Current_Dim2>());
25  }

◆ T3as_times_T3_012() [5/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 45 of file Tensor3_antisymmetric_times_Tensor3.hpp.

50  {
51  return T3as_times_T3_012(a, b, Number<Current_Dim0>(),
52  Number<Current_Dim2 - 1>(),
53  Number<Current_Dim2>());
54  }

◆ T3as_times_T3_012() [6/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 510 of file Tensor3_antisymmetric_times_Tensor3.hpp.

514  {
515  return a(0, 1, 0) * b(0, 0, 1);
516  }

◆ T3as_times_T3_012() [7/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 469 of file Tensor3_antisymmetric_times_Tensor3.hpp.

474  {
475  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
476  * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
477  + T3as_times_T3_012(a, b, Number<Current_Dim0>(), Number<Dim12>(),
478  Number<Current_Dim2 - 1>());
479  }

◆ T3as_times_T3_012() [8/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 498 of file Tensor3_antisymmetric_times_Tensor3.hpp.

502  {
503  return a(Current_Dim0 - 1, 1, 0) * b(Current_Dim0 - 1, 0, 1)
504  + T3as_times_T3_012(a, b, Number<Current_Dim0 - 1>(),
505  Number<Dim12 - 1>(), Number<Dim12>());
506  }

◆ T3as_times_T3_012() [9/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 454 of file Tensor3_antisymmetric_times_Tensor3.hpp.

459  {
460  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
461  * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
462  + T3as_times_T3_012(a, b, Number<Current_Dim0>(),
463  Number<Current_Dim1 - 1>(),
464  Number<Current_Dim2>());
465  }

◆ T3as_times_T3_012() [10/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 485 of file Tensor3_antisymmetric_times_Tensor3.hpp.

490  {
491  return T3as_times_T3_012(a, b, Number<Current_Dim0>(),
492  Number<Current_Dim2 - 1>(),
493  Number<Current_Dim2>());
494  }

◆ T3as_times_T3_102() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 334 of file Tensor3_antisymmetric_times_Tensor3.hpp.

338  {
339  return a(0, 1, 0) * b(1, 0, 0);
340  }

◆ T3as_times_T3_102() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 293 of file Tensor3_antisymmetric_times_Tensor3.hpp.

298  {
299  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
300  * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
301  + T3as_times_T3_102(a, b, Number<Current_Dim0>(), Number<Dim12>(),
302  Number<Current_Dim2 - 1>());
303  }

◆ T3as_times_T3_102() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 322 of file Tensor3_antisymmetric_times_Tensor3.hpp.

326  {
327  return a(Current_Dim0 - 1, 1, 0) * b(1, Current_Dim0 - 1, 0)
328  + T3as_times_T3_102(a, b, Number<Current_Dim0 - 1>(),
329  Number<Dim12 - 1>(), Number<Dim12>());
330  }

◆ T3as_times_T3_102() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 278 of file Tensor3_antisymmetric_times_Tensor3.hpp.

283  {
284  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
285  * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
286  + T3as_times_T3_102(a, b, Number<Current_Dim0>(),
287  Number<Current_Dim1 - 1>(),
288  Number<Current_Dim2>());
289  }

◆ T3as_times_T3_102() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 309 of file Tensor3_antisymmetric_times_Tensor3.hpp.

314  {
315  return T3as_times_T3_102(a, b, Number<Current_Dim0>(),
316  Number<Current_Dim2 - 1>(),
317  Number<Current_Dim2>());
318  }

◆ T3as_times_T3_120() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 246 of file Tensor3_antisymmetric_times_Tensor3.hpp.

250  {
251  return a(0, 1, 0) * b(1, 0, 0);
252  }

◆ T3as_times_T3_120() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 205 of file Tensor3_antisymmetric_times_Tensor3.hpp.

210  {
211  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
212  * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
213  + T3as_times_T3_120(a, b, Number<Current_Dim0>(), Number<Dim12>(),
214  Number<Current_Dim2 - 1>());
215  }

◆ T3as_times_T3_120() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 234 of file Tensor3_antisymmetric_times_Tensor3.hpp.

238  {
239  return a(Current_Dim0 - 1, 1, 0) * b(1, 0, Current_Dim0 - 1)
240  + T3as_times_T3_120(a, b, Number<Current_Dim0 - 1>(),
241  Number<Dim12 - 1>(), Number<Dim12>());
242  }

◆ T3as_times_T3_120() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 190 of file Tensor3_antisymmetric_times_Tensor3.hpp.

195  {
196  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
197  * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
198  + T3as_times_T3_120(a, b, Number<Current_Dim0>(),
199  Number<Current_Dim1 - 1>(),
200  Number<Current_Dim2>());
201  }

◆ T3as_times_T3_120() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 221 of file Tensor3_antisymmetric_times_Tensor3.hpp.

226  {
227  return T3as_times_T3_120(a, b, Number<Current_Dim0>(),
228  Number<Current_Dim2 - 1>(),
229  Number<Current_Dim2>());
230  }

◆ T3as_times_T3_201() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 158 of file Tensor3_antisymmetric_times_Tensor3.hpp.

162  {
163  return a(0, 1, 0) * b(0, 0, 1);
164  }

◆ T3as_times_T3_201() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 117 of file Tensor3_antisymmetric_times_Tensor3.hpp.

122  {
123  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
124  * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
125  + T3as_times_T3_201(a, b, Number<Current_Dim0>(), Number<Dim12>(),
126  Number<Current_Dim2 - 1>());
127  }

◆ T3as_times_T3_201() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 146 of file Tensor3_antisymmetric_times_Tensor3.hpp.

150  {
151  return a(Current_Dim0 - 1, 1, 0) * b(0, Current_Dim0 - 1, 1)
152  + T3as_times_T3_201(a, b, Number<Current_Dim0 - 1>(),
153  Number<Dim12 - 1>(), Number<Dim12>());
154  }

◆ T3as_times_T3_201() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 102 of file Tensor3_antisymmetric_times_Tensor3.hpp.

107  {
108  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
109  * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
110  + T3as_times_T3_201(a, b, Number<Current_Dim0>(),
111  Number<Current_Dim1 - 1>(),
112  Number<Current_Dim2>());
113  }

◆ T3as_times_T3_201() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 133 of file Tensor3_antisymmetric_times_Tensor3.hpp.

138  {
139  return T3as_times_T3_201(a, b, Number<Current_Dim0>(),
140  Number<Current_Dim2 - 1>(),
141  Number<Current_Dim2>());
142  }

◆ T3as_times_T3_210() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote<T, U>::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 422 of file Tensor3_antisymmetric_times_Tensor3.hpp.

426  {
427  return a(0, 1, 0) * b(0, 1, 0);
428  }

◆ T3as_times_T3_210() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 381 of file Tensor3_antisymmetric_times_Tensor3.hpp.

386  {
387  return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
388  * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
389  + T3as_times_T3_210(a, b, Number<Current_Dim0>(), Number<Dim12>(),
390  Number<Current_Dim2 - 1>());
391  }

◆ T3as_times_T3_210() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote<T, U>::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 410 of file Tensor3_antisymmetric_times_Tensor3.hpp.

414  {
415  return a(Current_Dim0 - 1, 1, 0) * b(0, 1, Current_Dim0 - 1)
416  + T3as_times_T3_210(a, b, Number<Current_Dim0 - 1>(),
417  Number<Dim12 - 1>(), Number<Dim12>());
418  }

◆ T3as_times_T3_210() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 366 of file Tensor3_antisymmetric_times_Tensor3.hpp.

371  {
372  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
373  * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
374  + T3as_times_T3_210(a, b, Number<Current_Dim0>(),
375  Number<Current_Dim1 - 1>(),
376  Number<Current_Dim2>());
377  }

◆ T3as_times_T3_210() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote<T, U>::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 397 of file Tensor3_antisymmetric_times_Tensor3.hpp.

402  {
403  return T3as_times_T3_210(a, b, Number<Current_Dim0>(),
404  Number<Current_Dim2 - 1>(),
405  Number<Current_Dim2>());
406  }

◆ T3ch_equals_generic() [1/4]

template<class A , class U , int Dim12, int Dim0>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 434 of file Dg_Expr_equals.hpp.

437  {
438  iter(0, 0, 0) = u;
439  }

◆ T3ch_equals_generic() [2/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 423 of file Dg_Expr_equals.hpp.

426  {
427  iter(Current_Dim2 - 1, 0, 0) = u;
428  T3ch_equals_generic(iter, u, Number<Dim12>(), Number<Dim12>(),
429  Number<Current_Dim2 - 1>(), Number<Dim12>(),
430  Number<Dim0>());
431  }

◆ T3ch_equals_generic() [3/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 411 of file Dg_Expr_equals.hpp.

415  {
416  iter(Current_Dim2 - 1, 0, Current_Dim1 - 1) = u;
417  T3ch_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
418  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
419  Number<Dim12>(), Number<Dim0>());
420  }

◆ T3ch_equals_generic() [4/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 398 of file Dg_Expr_equals.hpp.

402  {
403  iter(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1) = u;
404  T3ch_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
405  Number<Current_Dim1>(), Number<Current_Dim2>(),
406  Number<Dim12>(), Number<Dim0>());
407  }

◆ T3ch_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 319 of file Dg_Expr_equals.hpp.

322  {
323  Op::op(iter(0, 0, 0), result(0, 0, 0));
324  }

◆ T3ch_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 308 of file Dg_Expr_equals.hpp.

311  {
312  Op::op(iter(Current_Dim2 - 1, 0, 0), result(0, 0, Current_Dim2 - 1));
313  T3ch_equals_T3dg(iter, result, Number<Dim12>(), Number<Dim12>(),
314  Number<Current_Dim2 - 1>(), Op());
315  }

◆ T3ch_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 296 of file Dg_Expr_equals.hpp.

299  {
300  Op::op(iter(Current_Dim2 - 1, 0, Current_Dim1 - 1),
301  result(0, Current_Dim1 - 1, Current_Dim2 - 1));
302  T3ch_equals_T3dg(iter, result, Number<Current_Dim1 - 1>(),
303  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(), Op());
304  }

◆ T3ch_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 285 of file Dg_Expr_equals.hpp.

287  {
288  Op::op(iter(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1),
289  result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1));
290  T3ch_equals_T3dg(iter, result, Number<Current_Dim0 - 1>(),
291  Number<Current_Dim1>(), Number<Current_Dim2>(), Op());
292  }

◆ T3dg_equals_generic() [1/4]

template<class A , class U , int Dim01, int Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 233 of file Dg_Expr_equals.hpp.

236  {
237  iter(0, 0, 0) = u;
238  }

◆ T3dg_equals_generic() [2/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 222 of file Dg_Expr_equals.hpp.

225  {
226  iter(0, 0, Current_Dim2 - 1) = u;
227  T3dg_equals_generic(iter, u, Number<Dim01>(), Number<Dim01>(),
228  Number<Current_Dim2 - 1>(), Number<Dim01>(),
229  Number<Dim2>());
230  }

◆ T3dg_equals_generic() [3/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 210 of file Dg_Expr_equals.hpp.

214  {
215  iter(0, Current_Dim1 - 1, Current_Dim2 - 1) = u;
216  T3dg_equals_generic(iter, u, Number<Current_Dim1 - 1>(),
217  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
218  Number<Dim01>(), Number<Dim2>());
219  }

◆ T3dg_equals_generic() [4/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 197 of file Dg_Expr_equals.hpp.

201  {
202  iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1) = u;
203  T3dg_equals_generic(iter, u, Number<Current_Dim0 - 1>(),
204  Number<Current_Dim1>(), Number<Current_Dim2>(),
205  Number<Dim01>(), Number<Dim2>());
206  }

◆ T3dg_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 53 of file Dg_Expr_equals.hpp.

55  {
56  iter(0, 0, 0) = result(0, 0, 0);
57  }

◆ T3dg_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 41 of file Dg_Expr_equals.hpp.

44  {
45  iter(0, 0, Current_Dim2 - 1) = result(0, 0, Current_Dim2 - 1);
46  T3dg_equals_T3dg(iter, result, Number<Dim01>(), Number<Dim01>(),
47  Number<Current_Dim2 - 1>());
48  }

◆ T3dg_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 28 of file Dg_Expr_equals.hpp.

31  {
32  iter(0, Current_Dim1 - 1, Current_Dim2 - 1)
33  = result(0, Current_Dim1 - 1, Current_Dim2 - 1);
34  T3dg_equals_T3dg(iter, result, Number<Current_Dim1 - 1>(),
35  Number<Current_Dim1 - 1>(), Number<Current_Dim2>());
36  }

◆ T3dg_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 15 of file Dg_Expr_equals.hpp.

18  {
19  iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20  = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
21  T3dg_equals_T3dg(iter, result, Number<Current_Dim0 - 1>(),
22  Number<Current_Dim1>(), Number<Current_Dim2>());
23  }

◆ T3dg_plus_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 139 of file Dg_Expr_equals.hpp.

142  {
143  Op::op(iter(0, 0, 0), result(0, 0, 0));
144  }

◆ T3dg_plus_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 128 of file Dg_Expr_equals.hpp.

131  {
132  Op::op(iter(0, 0, Current_Dim2 - 1), result(0, 0, Current_Dim2 - 1));
133  T3dg_plus_equals_T3dg(iter, result, Number<Dim01>(), Number<Dim01>(),
134  Number<Current_Dim2 - 1>(), Op());
135  }

◆ T3dg_plus_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 115 of file Dg_Expr_equals.hpp.

118  {
119  Op::op(iter(0, Current_Dim1 - 1, Current_Dim2 - 1),
120  result(0, Current_Dim1 - 1, Current_Dim2 - 1));
121  T3dg_plus_equals_T3dg(iter, result, Number<Current_Dim1 - 1>(),
122  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
123  Op());
124  }

◆ T3dg_plus_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 102 of file Dg_Expr_equals.hpp.

106  {
107  Op::op(iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1),
108  result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1));
109  T3dg_plus_equals_T3dg(iter, result, Number<Current_Dim0 - 1>(),
110  Number<Current_Dim1>(), Number<Current_Dim2>(), Op());
111  }

◆ T3dgrhs01_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2>
void FTensor::T3dgrhs01_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  ,
const Number< N2 > &  ,
const Number< 1 > &   
)

Definition at line 831 of file Tensor1_Expr_equals.hpp.

834  {
835  iter(N1, N2, 0) = result(0);
836  }

◆ T3dgrhs01_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void FTensor::T3dgrhs01_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  NN1,
const Number< N2 > &  NN2,
const Number< Current_Dim > &   
)

Definition at line 822 of file Tensor1_Expr_equals.hpp.

825  {
826  iter(N1, N2, Current_Dim - 1) = result(Current_Dim - 1);
827  T3dgrhs01_equals_T1(iter, result, NN1, NN2, Number<Current_Dim - 1>());
828  }

◆ T3dgrhs12_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2>
void FTensor::T3dgrhs12_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  ,
const Number< N2 > &  ,
const Number< 1 > &   
)

Definition at line 792 of file Tensor1_Expr_equals.hpp.

795  {
796  iter(0, N1, N2) = result(0);
797  }

◆ T3dgrhs12_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void FTensor::T3dgrhs12_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  NN1,
const Number< N2 > &  NN2,
const Number< Current_Dim > &   
)

Definition at line 783 of file Tensor1_Expr_equals.hpp.

786  {
787  iter(Current_Dim - 1, N1, N2) = result(Current_Dim - 1);
788  T3dgrhs12_equals_T1(iter, result, NN1, NN2, Number<Current_Dim - 1>());
789  }

◆ T3dgrhs2_equals_T2s() [1/3]

template<class A , class B , class U , int Dim01, char i, char j, int N>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N > &   
)

Definition at line 516 of file Tensor2_symmetric_Expr_equals.hpp.

519  {
520  iter(0, 0, N) = result(0, 0);
521  }

◆ T3dgrhs2_equals_T2s() [2/3]

template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim1>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N > &   
)

Definition at line 504 of file Tensor2_symmetric_Expr_equals.hpp.

508  {
509  iter(0, Current_Dim1 - 1, N) = result(0, Current_Dim1 - 1);
510  T3dgrhs2_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
511  Number<Current_Dim1 - 1>(), Number<N>());
512  }

◆ T3dgrhs2_equals_T2s() [3/3]

template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim0, int Current_Dim1>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N > &   
)

Definition at line 490 of file Tensor2_symmetric_Expr_equals.hpp.

494  {
495  iter(Current_Dim0 - 1, Current_Dim1 - 1, N)
496  = result(Current_Dim0 - 1, Current_Dim1 - 1);
497  T3dgrhs2_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
498  Number<Current_Dim1>(), Number<N>());
499  }

◆ T4_increment() [1/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 58 of file Tensor4_pointer.hpp.

61 {
62  iter.increment(Number<1>(), Number<1>(), Number<1>(), Number<1>());
63 }

◆ T4_increment() [2/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 47 of file Tensor4_pointer.hpp.

50 {
51  iter.increment(Number<1>(), Number<1>(), Number<1>(),
52  Number<Current_Dim3>());
53  T4_increment(iter, Number<Dim0>(), Number<Dim1>(), Number<Dim2>(),
54  Number<Current_Dim3 - 1>());
55 }

◆ T4_increment() [3/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 36 of file Tensor4_pointer.hpp.

39 {
40  iter.increment(Number<1>(), Number<1>(), Number<Current_Dim2>(),
41  Number<Current_Dim3>());
42  T4_increment(iter, Number<Dim0>(), Number<Dim1>(),
43  Number<Current_Dim2 - 1>(), Number<Current_Dim3>());
44 }

◆ T4_increment() [4/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 23 of file Tensor4_pointer.hpp.

26 {
27  iter.increment(Number<1>(), Number<Current_Dim1>(), Number<Current_Dim2>(),
28  Number<Current_Dim3>());
29  T4_increment(iter, Number<Dim0>(), Number<Current_Dim1 - 1>(),
30  Number<Current_Dim2>(), Number<Current_Dim3>());
31 }

◆ T4_increment() [5/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 10 of file Tensor4_pointer.hpp.

13 {
14  iter.increment(Number<Current_Dim0>(), Number<Current_Dim1>(),
15  Number<Current_Dim2>(), Number<Current_Dim3>());
16  T4_increment(iter, Number<Current_Dim0 - 1>(), Number<Current_Dim1>(),
17  Number<Current_Dim2>(), Number<Current_Dim3>());
18 }

◆ T4ddg_equals_T4ddg() [1/5]

template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 77 of file Ddg_Expr_equals.hpp.

81  {
82  iter(0, 0, 0, 0) = result(0, 0, 0, 0);
83  }

◆ T4ddg_equals_T4ddg() [2/5]

template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 64 of file Ddg_Expr_equals.hpp.

68  {
69  iter(0, 0, 0, Current_Dim3 - 1) = result(0, 0, 0, Current_Dim3 - 1);
70  T4ddg_equals_T4ddg(iter, result, Number<Dim01>(), Number<Dim01>(),
71  Number<Current_Dim3 - 1>(), Number<Current_Dim3 - 1>());
72  }

◆ T4ddg_equals_T4ddg() [3/5]

template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 49 of file Ddg_Expr_equals.hpp.

54  {
55  iter(0, 0, Current_Dim2 - 1, Current_Dim3 - 1)
56  = result(0, 0, Current_Dim2 - 1, Current_Dim3 - 1);
57  T4ddg_equals_T4ddg(iter, result, Number<Dim01>(), Number<Dim01>(),
58  Number<Current_Dim2 - 1>(), Number<Current_Dim3>());
59  }

◆ T4ddg_equals_T4ddg() [4/5]

template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 33 of file Ddg_Expr_equals.hpp.

38  {
39  iter(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1)
40  = result(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1);
41  T4ddg_equals_T4ddg(iter, result, Number<Current_Dim1 - 1>(),
42  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
43  Number<Current_Dim3>());
44  }

◆ T4ddg_equals_T4ddg() [5/5]

template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 13 of file Ddg_Expr_equals.hpp.

19  {
20  iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
21  Current_Dim3 - 1)
22  = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
23  Current_Dim3 - 1);
24  T4ddg_equals_T4ddg(iter, result, Number<Current_Dim0 - 1>(),
25  Number<Current_Dim1>(), Number<Current_Dim2>(),
26  Number<Current_Dim3>());
27  }

◆ T4ddg_plus_equals_T4ddg() [1/5]

template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 181 of file Ddg_Expr_equals.hpp.

185  {
186  Op::op(iter(0, 0, 0, 0), result(0, 0, 0, 0));
187  }

◆ T4ddg_plus_equals_T4ddg() [2/5]

template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 168 of file Ddg_Expr_equals.hpp.

171  {
172  Op::op(iter(0, 0, 0, Current_Dim3 - 1), result(0, 0, 0, Current_Dim3 - 1));
173  T4ddg_plus_equals_T4ddg(iter, result, Number<Dim01>(), Number<Dim01>(),
174  Number<Current_Dim3 - 1>(),
175  Number<Current_Dim3 - 1>(), Op());
176  }

◆ T4ddg_plus_equals_T4ddg() [3/5]

template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 155 of file Ddg_Expr_equals.hpp.

158  {
159  Op::op(iter(0, 0, Current_Dim2 - 1, Current_Dim3 - 1),
160  result(0, 0, Current_Dim2 - 1, Current_Dim3 - 1));
161  T4ddg_plus_equals_T4ddg(iter, result, Number<Dim01>(), Number<Dim01>(),
162  Number<Current_Dim2 - 1>(), Number<Current_Dim3>(),
163  Op());
164  }

◆ T4ddg_plus_equals_T4ddg() [4/5]

template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 141 of file Ddg_Expr_equals.hpp.

144  {
145  Op::op(iter(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1),
146  result(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1));
147  T4ddg_plus_equals_T4ddg(iter, result, Number<Current_Dim1 - 1>(),
148  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
149  Number<Current_Dim3>(), Op());
150  }

◆ T4ddg_plus_equals_T4ddg() [5/5]

template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 124 of file Ddg_Expr_equals.hpp.

127  {
128 
129  Op::op(iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
130  Current_Dim3 - 1),
131  result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
132  Current_Dim3 - 1));
133  T4ddg_plus_equals_T4ddg(iter, result, Number<Current_Dim0 - 1>(),
134  Number<Current_Dim1>(), Number<Current_Dim2>(),
135  Number<Current_Dim3>(), Op());
136  }

◆ T4ddg_times_T4ddg_0213() [1/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote<T, U>::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 69 of file Ddg_times_Ddg.hpp.

72  {
73  return a(0, 0, 0, 0) * b(0, 0, 0, 0);
74 }

◆ T4ddg_times_T4ddg_0213() [2/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim3>
promote<T, U>::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 57 of file Ddg_times_Ddg.hpp.

60  {
61  return a(0, 0, 0, Current_Dim3 - 1) * b(0, 0, 0, Current_Dim3 - 1) +
62  T4ddg_times_T4ddg_0213(a, b, Number<Dim>(), Number<Dim>(),
63  Number<Dim>(), Number<Current_Dim3 - 1>());
64 }

◆ T4ddg_times_T4ddg_0213() [3/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim2, int Current_Dim3>
promote<T, U>::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 42 of file Ddg_times_Ddg.hpp.

46  {
47  return a(0, 0, Current_Dim2 - 1, Current_Dim3 - 1) *
48  b(0, Current_Dim2 - 1, 0, Current_Dim3 - 1) +
49  T4ddg_times_T4ddg_0213(a, b, Number<Dim>(), Number<Dim>(),
50  Number<Current_Dim2 - 1>(),
51  Number<Current_Dim3>());
52 }

◆ T4ddg_times_T4ddg_0213() [4/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote<T, U>::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 28 of file Ddg_times_Ddg.hpp.

32  {
33  return a(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1) *
34  b(0, Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim3 - 1) +
35  T4ddg_times_T4ddg_0213(a, b, Number<Dim>(), Number<Current_Dim1 - 1>(),
36  Number<Current_Dim2>(), Number<Current_Dim3>());
37 }

◆ T4ddg_times_T4ddg_0213() [5/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote<T, U>::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 11 of file Ddg_times_Ddg.hpp.

15  {
16  return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
17  Current_Dim3 - 1) *
18  b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1,
19  Current_Dim3 - 1) +
20  T4ddg_times_T4ddg_0213(a, b, Number<Current_Dim0 - 1>(),
21  Number<Current_Dim1>(), Number<Current_Dim2>(),
22  Number<Current_Dim3>());
23 }

◆ T4ddgrhs01_equals_T2s() [1/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 575 of file Tensor2_symmetric_Expr_equals.hpp.

579  {
580  iter(N0, N1, 0, 0) = result(0, 0);
581  }

◆ T4ddgrhs01_equals_T2s() [2/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 562 of file Tensor2_symmetric_Expr_equals.hpp.

566  {
567  iter(N0, N1, 0, Current_Dim1 - 1) = result(0, Current_Dim1 - 1);
568  T4ddgrhs01_equals_T2s(iter, result, Number<Current_Dim1 - 1>(),
569  Number<Current_Dim1 - 1>(), Number<N0>(),
570  Number<N1>());
571  }

◆ T4ddgrhs01_equals_T2s() [3/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim0, int Current_Dim1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 549 of file Tensor2_symmetric_Expr_equals.hpp.

553  {
554  iter(N0, N1, Current_Dim0 - 1, Current_Dim1 - 1)
555  = result(Current_Dim0 - 1, Current_Dim1 - 1);
556  T4ddgrhs01_equals_T2s(iter, result, Number<Current_Dim0 - 1>(),
557  Number<Current_Dim1>(), Number<N0>(), Number<N1>());
558  }

◆ T4ddgrhs0_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N > &   
)

Definition at line 500 of file Dg_Expr_equals.hpp.

504  {
505  iter(N, 0, 0, 0) = result(0, 0, 0);
506  }

◆ T4ddgrhs0_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 488 of file Dg_Expr_equals.hpp.

492  {
493  iter(N, Current_Dim2 - 1, 0, 0) = result(0, 0, Current_Dim2 - 1);
494  T4ddgrhs0_equals_T3dg(iter, result, Number<Dim23>(), Number<Dim23>(),
495  Number<Current_Dim2 - 1>(), Number<N>());
496  }

◆ T4ddgrhs0_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim1, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 474 of file Dg_Expr_equals.hpp.

478  {
479  iter(N, Current_Dim2 - 1, 0, Current_Dim1 - 1)
480  = result(0, Current_Dim1 - 1, Current_Dim2 - 1);
481  T4ddgrhs0_equals_T3dg(iter, result, Number<Current_Dim1 - 1>(),
482  Number<Current_Dim1 - 1>(), Number<Current_Dim2>(),
483  Number<N>());
484  }

◆ T4ddgrhs0_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 459 of file Dg_Expr_equals.hpp.

464  {
465  iter(N, Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
466  = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
467  T4ddgrhs0_equals_T3dg(iter, result, Number<Current_Dim0 - 1>(),
468  Number<Current_Dim1>(), Number<Current_Dim2>(),
469  Number<N>());
470  }

◆ Tensor2_antisymmetric_istream_row()

template<class T , int Tensor_Dim>
std::istream& FTensor::Tensor2_antisymmetric_istream_row ( std::istream &  is,
FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 278 of file Tensor2_antisymmetric_value.hpp.

281  {
282  char c;
283  is >> c;
284  for(int j = i + 1; j + 1 < Tensor_Dim; ++j)
285  {
286  is >> t.unsafe(i, j) >> c;
287  }
288  if(Tensor_Dim > 0)
289  {
290  is >> t.unsafe(i, Tensor_Dim - 1);
291  }
292  is >> c;
293  return is;
294  }

◆ Tensor2_antisymmetric_ostream_row()

template<class T , int Tensor_Dim>
std::ostream& FTensor::Tensor2_antisymmetric_ostream_row ( std::ostream &  os,
const FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 238 of file Tensor2_antisymmetric_value.hpp.

241  {
242  os << '[';
243  for(int j = i + 1; j + 1 < Tensor_Dim; ++j)
244  {
245  os << t(i, j) << ',';
246  }
247  if(Tensor_Dim > 0)
248  {
249  os << t(i, Tensor_Dim - 1);
250  }
251  os << ']';
252  return os;
253  }

◆ Tensor2_istream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream& FTensor::Tensor2_istream_row ( std::istream &  is,
FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t,
const int &  i 
)

Definition at line 268 of file Tensor2_value.hpp.

271  {
272  char c;
273  is >> c;
274  for(int j = 0; j + 1 < Tensor_Dim1; ++j)
275  {
276  is >> t(i, j) >> c;
277  }
278  if(Tensor_Dim1 > 0)
279  {
280  is >> t(i, Tensor_Dim1 - 1);
281  }
282  is >> c;
283  return is;
284  }

◆ Tensor2_ostream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream& FTensor::Tensor2_ostream_row ( std::ostream &  os,
const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t,
const int &  i 
)

Definition at line 230 of file Tensor2_value.hpp.

233  {
234  os << '[';
235  for(int j = 0; j + 1 < Tensor_Dim1; ++j)
236  {
237  os << t(i, j) << ',';
238  }
239  if(Tensor_Dim1 > 0)
240  {
241  os << t(i, Tensor_Dim1 - 1);
242  }
243  os << ']';
244  return os;
245  }

◆ Tensor2_symmetric_istream_row()

template<class T , int Tensor_Dim>
std::istream& FTensor::Tensor2_symmetric_istream_row ( std::istream &  is,
FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 290 of file Tensor2_symmetric_value.hpp.

293  {
294  char c;
295  is >> c;
296  for(int j = i; j + 1 < Tensor_Dim; ++j)
297  {
298  is >> t(i, j) >> c;
299  }
300  if(Tensor_Dim > 0)
301  {
302  is >> t(i, Tensor_Dim - 1);
303  }
304  is >> c;
305  return is;
306  }

◆ Tensor2_symmetric_ostream_row()

template<class T , int Tensor_Dim>
std::ostream& FTensor::Tensor2_symmetric_ostream_row ( std::ostream &  os,
const FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 253 of file Tensor2_symmetric_value.hpp.

256  {
257  os << '[';
258  for(int j = i; j + 1 < Tensor_Dim; ++j)
259  {
260  os << t(i, j) << ',';
261  }
262  if(Tensor_Dim > 0)
263  {
264  os << t(i, Tensor_Dim - 1);
265  }
266  os << ']';
267  return os;
268  }

◆ Tensor3_istream_block()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream& FTensor::Tensor3_istream_block ( std::istream &  is,
FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i 
)

Definition at line 543 of file Tensor3_value.hpp.

547  {
548  char c;
549  is >> c;
550  for(int j = 0; j + 1 < Tensor_Dim1; ++j)
551  {
552  Tensor3_istream_row(is, t, i, j);
553  is >> c;
554  }
555  if(Tensor_Dim1 > 0)
556  {
557  Tensor3_istream_row(is, t, i, Tensor_Dim1 - 1);
558  }
559  is >> c;
560  return is;
561  }

◆ Tensor3_istream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream& FTensor::Tensor3_istream_row ( std::istream &  is,
FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i,
const int &  j 
)

Definition at line 523 of file Tensor3_value.hpp.

527  {
528  char c;
529  is >> c;
530  for(int k = 0; k + 1 < Tensor_Dim2; ++k)
531  {
532  is >> t(i, j, k) >> c;
533  }
534  if(Tensor_Dim2 > 0)
535  {
536  is >> t(i, j, Tensor_Dim2 - 1);
537  }
538  is >> c;
539  return is;
540  }

◆ Tensor3_ostream_block()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream& FTensor::Tensor3_ostream_block ( std::ostream &  os,
const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i 
)

Definition at line 473 of file Tensor3_value.hpp.

477  {
478  os << '[';
479  for(int j = 0; j + 1 < Tensor_Dim1; ++j)
480  {
482  os << ',';
483  }
484  if(Tensor_Dim1 > 0)
485  {
486  FTensor::Tensor3_ostream_row(os, t, i, Tensor_Dim1 - 1);
487  }
488  os << ']';
489  return os;
490  }

◆ Tensor3_ostream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream& FTensor::Tensor3_ostream_row ( std::ostream &  os,
const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i,
const int &  j 
)

Definition at line 454 of file Tensor3_value.hpp.

458  {
459  os << '[';
460  for(int k = 0; k + 1 < Tensor_Dim2; ++k)
461  {
462  os << t(i, j, k) << ',';
463  }
464  if(Tensor_Dim2 > 0)
465  {
466  os << t(i, j, Tensor_Dim2 - 1);
467  }
468  os << ']';
469  return os;
470  }

◆ Tensor4_0001()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream& FTensor::Tensor4_0001 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0,
const int &  iterator1,
const int &  iterator2 
)

Definition at line 278 of file Tensor4_value.hpp.

282  {
283  os << '[';
284  for(int i = 0; i < Tensor_Dim3 - 1; ++i)
285  {
286  os << t(iterator0, iterator1, iterator2, i);
287  os << ',';
288  }
289  os << t(iterator0, iterator1, iterator2, Tensor_Dim3 - 1);
290  os << ']';
291 
292  return os;
293  }

◆ Tensor4_0010()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream& FTensor::Tensor4_0010 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0,
const int &  iterator1 
)

Definition at line 297 of file Tensor4_value.hpp.

301  {
302  os << '[';
303  for(int i = 0; i < Tensor_Dim2 - 1; ++i)
304  {
305  FTensor::Tensor4_0001(os, t, iterator0, iterator1, i);
306  os << ',';
307  }
308  FTensor::Tensor4_0001(os, t, iterator0, iterator1, Tensor_Dim2 - 1);
309  os << ']';
310 
311  return os;
312  }

◆ Tensor4_0100()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream& FTensor::Tensor4_0100 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0 
)

Definition at line 316 of file Tensor4_value.hpp.

320  {
321  os << '[';
322  for(int i = 0; i < Tensor_Dim1 - 1; ++i)
323  {
324  FTensor::Tensor4_0010(os, t, iterator0, i);
325  os << ',';
326  }
327  FTensor::Tensor4_0010(os, t, iterator0, Tensor_Dim1 - 1);
328  os << ']';
329 
330  return os;
331  }

◆ transform()

template<class A , class B , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr<transform_Tensor2<A, B, T, Dim0, Dim1, i, j>, T, Dim0, Dim1, i, j> FTensor::transform ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
function 
)

Definition at line 27 of file Tensor2_transform.hpp.

28  {
29  using TensorExpr = transform_Tensor2<A, B, T, Dim0, Dim1, i, j>;
30  return Tensor2_Expr<TensorExpr, T, Dim0, Dim1, i, j>(
31  TensorExpr(a, function));
32  }
FTensor::T2rhs1_divide_equals_generic
void T2rhs1_divide_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:763
FTensor::T3as_times_T3_201
promote< T, U >::V T3as_times_T3_201(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
Definition: Tensor3_antisymmetric_times_Tensor3.hpp:158
FTensor::T1_times_T1
promote< T, U >::V T1_times_T1(const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< 1 > &)
Definition: Tensor1_times_Tensor1.hpp:22
FTensor::T3_times_T3dg_120
promote< T, U >::V T3_times_T3dg_120(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:186
FTensor::T3_times_T3_201
promote< T, U >::V T3_times_T3_201(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:121
FTensor::T2rhs1_minus_equals_T1
void T2rhs1_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:620
FTensor::T2s_and_equals_T2s
void T2s_and_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:243
FTensor::T3_increment
void T3_increment(const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_pointer.hpp:38
FTensor::Tensor4_0001
std::ostream & Tensor4_0001(std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1, const int &iterator2)
Definition: Tensor4_value.hpp:278
FTensor::T2s_equals_adolc_left_T2s
void T2s_equals_adolc_left_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:89
FTensor::T1_divide_equals_generic
void T1_divide_equals_generic(A &iter, const U &u, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:273
FTensor::Tensor3_ostream_row
std::ostream & Tensor3_ostream_row(std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
Definition: Tensor3_value.hpp:454
FTensor::T2_times_T2
promote< T, U >::V T2_times_T2(const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_times_Tensor2.hpp:42
FTensor::row_major
@ row_major
Definition: Layout.hpp:13
FTensor::Tensor4_0010
std::ostream & Tensor4_0010(std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1)
Definition: Tensor4_value.hpp:297
FTensor::T2s_minus_equals_T2s
void T2s_minus_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:196
FTensor::T3dg_equals_generic
void T3dg_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim01 > &, const Number< Dim2 > &)
Definition: Dg_Expr_equals.hpp:233
FTensor::T2rhs0_minus_equals_generic
void T2rhs0_minus_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:463
FTensor::T2rhs1_minus_equals_generic
void T2rhs1_minus_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:709
FTensor::T2rhs1_equals_T1
void T2rhs1_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:546
FTensor::T3_times_T3dg_210
promote< T, U >::V T3_times_T3dg_210(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:316
FTensor::T2s_divide_equals_generic
void T2s_divide_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:467
FTensor::T3dgrhs2_equals_T2s
void T3dgrhs2_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:516
FTensor::T2rhs0_times_equals_generic
void T2rhs0_times_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:490
FTensor::T2s_equals_T2s
void T2s_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:36
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
FTensor::T1_minus_equals_generic
void T1_minus_equals_generic(A &iter, const U &u, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:223
FTensor::T2s_times_switched_T2s
promote< T, U >::V T2s_times_switched_T2s(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_times_Tensor2_symmetric.hpp:86
FTensor::T4ddg_plus_equals_T4ddg
void T4ddg_plus_equals_T4ddg(A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
Definition: Ddg_Expr_equals.hpp:181
Index
Definition: single.cpp:3
FTensor::levi_civita
constexpr std::enable_if<(Dim0<=2 &&Dim1<=2), Tensor2_Expr< Levi_Civita< T >, T, Dim0, Dim1, i, j > >::type levi_civita(const Index< i, Dim0 > &, const Index< j, Dim1 > &)
levi_civita functions to make for easy adhoc use
Definition: Levi_Civita.hpp:617
FTensor::T3ch_equals_T3dg
void T3ch_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
Definition: Dg_Expr_equals.hpp:319
FTensor::T1_times_equals_generic
void T1_times_equals_generic(A &iter, const U &u, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:248
FTensor::T2rhs0_equals_generic
void T2rhs0_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:409
c
const double c
speed of light (cm/ns)
Definition: initial_diffusion.cpp:39
FTensor::T1_equals_addolc_right_T1
void T1_equals_addolc_right_T1(A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:89
FTensor::operator*
double operator*(const Tensor4_Expr< B, i, j, k, l > &b, const Riemann_Expr< A, i, j, k, l > &a)
Definition: Riemann_times_Tensor4.hpp:91
a
constexpr double a
Definition: approx_sphere.cpp:30
FTensor::T2rhs0_minus_equals_T1
void T2rhs0_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:374
FTensor::Tensor2_ostream_row
std::ostream & Tensor2_ostream_row(std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
Definition: Tensor2_value.hpp:230
FTensor::T3_times_T3_102
promote< T, U >::V T3_times_T3_102(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:251
FTensor::T3dgrhs12_equals_T1
void T3dgrhs12_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:792
FTensor::T3as_times_T3_120
promote< T, U >::V T3as_times_T3_120(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
Definition: Tensor3_antisymmetric_times_Tensor3.hpp:246
FTensor::T2s_equals_generic
void T2s_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:316
FTensor::T2rhs1_plus_equals_T1
void T2rhs1_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:583
FTensor::T1_equals_addolc_left_T1
void T1_equals_addolc_left_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:60
FTensor::Tensor2_istream_row
std::istream & Tensor2_istream_row(std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
Definition: Tensor2_value.hpp:268
FTensor::column_major
@ column_major
Definition: Layout.hpp:12
FTensor::T4_increment
void T4_increment(const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor4_pointer.hpp:58
FTensor::T2s_times_equals_generic
void T2s_times_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:429
FTensor::T2rhs0_equals_T1
void T2rhs0_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:300
FTensor::T3_times_T3_120
promote< T, U >::V T3_times_T3_120(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:186
FTensor::T1_plus_equals_T1
void T1_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:116
FTensor::T2s_plus_equals_T2s
void T2s_plus_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:149
FTensor::T4ddg_times_T4ddg_0213
promote< T, U >::V T4ddg_times_T4ddg_0213(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Ddg_times_Ddg.hpp:69
FTensor::T2_times_switched_T2
promote< T, U >::V T2_times_switched_T2(const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_times_Tensor2.hpp:89
FTensor::operator*
promote< T, U >::V operator*(const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b, const Riemann_Expr< A, T, Dim, i, k, j, l > &a)
Definition: Riemann_times_Ddg.hpp:78
FTensor::T3_times_T3dg_021
promote< T, U >::V T3_times_T3dg_021(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:381
FTensor::Tensor2_symmetric_ostream_row
std::ostream & Tensor2_symmetric_ostream_row(std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
Definition: Tensor2_symmetric_value.hpp:253
FTensor::T2rhs0_plus_equals_T1
void T2rhs0_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:337
FTensor::Tensor2_symmetric_istream_row
std::istream & Tensor2_symmetric_istream_row(std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
Definition: Tensor2_symmetric_value.hpp:290
FTensor::T4ddgrhs01_equals_T2s
void T4ddgrhs01_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N0 > &, const Number< N1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:575
FTensor::T3_times_T3_021
promote< T, U >::V T3_times_T3_021(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:381
t
constexpr double t
plate stiffness
Definition: plate.cpp:58
FTensor::T2rhs1_times_equals_generic
void T2rhs1_times_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:736
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
FTensor::T4ddg_equals_T4ddg
void T4ddg_equals_T4ddg(A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Ddg_Expr_equals.hpp:77
FTensor::T1_equals_T1
void T1_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:21
FTensor::T4ddgrhs0_equals_T3dg
void T4ddgrhs0_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
Definition: Dg_Expr_equals.hpp:500
FTensor::T2rhs0_plus_equals_generic
void T2rhs0_plus_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:436
FTensor::T3as_times_T3_102
promote< T, U >::V T3as_times_T3_102(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
Definition: Tensor3_antisymmetric_times_Tensor3.hpp:334
convert.n
n
Definition: convert.py:82
FTensor::Tensor3_istream_row
std::istream & Tensor3_istream_row(std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
Definition: Tensor3_value.hpp:523
N
const int N
Definition: speed_test.cpp:3
FTensor::T3ch_equals_generic
void T3ch_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim12 > &, const Number< Dim0 > &)
Definition: Dg_Expr_equals.hpp:434
FTensor::T2rhs0_divide_equals_generic
void T2rhs0_divide_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:517
FTensor::T3dg_plus_equals_T3dg
void T3dg_plus_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
Definition: Dg_Expr_equals.hpp:139
Tensor1_Expr
Definition: single.cpp:11
FTensor::T1_minus_equals_T1
void T1_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:143
FTensor::T3dg_equals_T3dg
void T3dg_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Dg_Expr_equals.hpp:53
FTensor::T1_equals_generic
void T1_equals_generic(A &iter, const U &u, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:174
Op
Definition: prism_elements_from_surface.cpp:78
FTensor::T2s_minus_equals_generic
void T2s_minus_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:391
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
FTensor::T2rhs1_plus_equals_generic
void T2rhs1_plus_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:682
FTensor::T1_plus_equals_generic
void T1_plus_equals_generic(A &iter, const U &u, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:198
FTensor::T2rhs1_equals_generic
void T2rhs1_equals_generic(A &iter, const U &u, const Number< N > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:655
FTensor::T3_times_T3dg_201
promote< T, U >::V T3_times_T3dg_201(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:121
FTensor::T3as_times_T3_012
promote< T, U >::V T3as_times_T3_012(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
Definition: Tensor3_antisymmetric_times_Tensor3.hpp:510
FTensor::T3as_switched_equals_T3as
void T3as_switched_equals_T3as(A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
Definition: Tensor3_antisymmetric_Expr_equals.hpp:135
m
FTensor::Index< 'm', 3 > m
Definition: shallow_wave.cpp:80
FTensor::T3_times_T3dg_102
promote< T, U >::V T3_times_T3dg_102(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:251
FTensor::T3dgrhs01_equals_T1
void T3dgrhs01_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
Definition: Tensor1_Expr_equals.hpp:831
FTensor::T3_times_T3_012
promote< T, U >::V T3_times_T3_012(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:56
FTensor::T2s_times_T2_01
promote< T, U >::V T2s_times_T2_01(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_times_Tensor2.hpp:100
FTensor::T3as_equals_T3as
void T3as_equals_T3as(A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
Definition: Tensor3_antisymmetric_Expr_equals.hpp:53
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20
FTensor::T3_times_T3dg_012
promote< T, U >::V T3_times_T3dg_012(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Dg.hpp:56
FTensor::T2s_times_T2s
promote< T, U >::V T2s_times_T2s(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_times_Tensor2_symmetric.hpp:41
EshelbianPlasticity::U
@ U
Definition: EshelbianContact.cpp:197
l
FTensor::Index< 'l', 3 > l
Definition: matrix_function.cpp:21
FTensor::T3as_times_T3_210
promote< T, U >::V T3as_times_T3_210(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
Definition: Tensor3_antisymmetric_times_Tensor3.hpp:422
FTensor::T2s_plus_equals_generic
void T2s_plus_equals_generic(A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor2_symmetric_Expr_equals.hpp:353
FTensor::T3_times_T3_210
promote< T, U >::V T3_times_T3_210(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
Definition: Tensor3_times_Tensor3.hpp:316