18 return (
N1 ==
N2) ?
T(1) :
T(0);
21 template <
char i,
char j,
int Dim0,
int Dim1>
27 template <
char i,
int Dim0>
29 auto TensorExpr = [
this,
N1](
const int &
N0) {
35 template <
char j,
int Dim1>
37 auto TensorExpr = [
this,
N0](
const int &
N1) {
52 return (
N1 ==
N2) ?
T(1) :
T(0);
55 template <
char i,
char j,
int Dim>
61 template <
char i,
int Dim0>
63 auto TensorExpr = [
this,
N1](
const int &
N0) {
69 template <
char j,
int Dim1>
71 auto TensorExpr = [
this,
N0](
const int &
N1) {
79template <
class T =
int,
char i,
char j,
int Dim0,
int Dim1>
80Tensor2_Expr<Kronecker_Delta<T>,
T, Dim0, Dim1,
i,
j>
85template <
class T =
int,
char i,
int Dim0>
90template <
class T =
int,
char j,
int Dim1>
95template <
class T =
int,
char i,
char j,
int Dim>
96Tensor2_symmetric_Expr<Kronecker_Delta_symmetric<T>,
T, Dim,
i,
j>
101template <
class T =
int,
char i,
int Dim0>
107template <
class T =
int,
char j,
int Dim1>
Kronecker Delta class symmetric.
constexpr auto operator()(const int &N0, const Index< j, Dim1 > &) const
Tensor2_symmetric_Expr< Kronecker_Delta_symmetric< T >, T, Dim, i, j > operator()(const Index< i, Dim > &, const Index< j, Dim > &) const
constexpr auto operator()(const Index< i, Dim0 > &, const int &N1) const
constexpr T operator()(const int N1, const int N2) const
constexpr auto operator()(const Index< i, Dim0 > &, const int &N1) const
constexpr T operator()(const int N1, const int N2) const
Tensor2_Expr< Kronecker_Delta< T >, T, Dim0, Dim1, i, j > operator()(const Index< i, Dim0 > &, const Index< j, Dim1 > &) const
constexpr auto operator()(const int &N0, const Index< j, Dim1 > &) const
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'j', 3 > j
Tensors class implemented by Walter Landry.
Tensor2_symmetric_Expr< Kronecker_Delta_symmetric< T >, T, Dim, i, j > kronecker_delta_symmetric(const Index< i, Dim > &, const Index< j, Dim > &)
Tensor2_Expr< Kronecker_Delta< T >, T, Dim0, Dim1, i, j > kronecker_delta(const Index< i, Dim0 > &, const Index< j, Dim1 > &)
Rank 2.