21#include "../permute.hpp"
25 template <
class A,
class T,
int Dim0,
int Dim1,
char i,
char j>
36 template <
class A,
class T,
int Tensor_Dim0,
int Tensor_Dim1,
int Dim0,
37 int Dim1,
char i,
char j>
47 T*
ptr(
const int N1,
const int N2)
const {
return iter.ptr(N1, N2); }
53 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
56 for(
int ii = 0; ii < Dim0; ++ii)
57 for(
int jj = 0; jj < Dim1; ++jj)
64 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
72 Dim0, Dim1,
i,
j> &rhs)
77 template <
class B,
class U,
int Dim,
char i_1,
char j_1>
79 for (
int ii = 0; ii != Dim; ++ii)
80 for (
int jj = 0; jj != Dim; ++jj) {
81 iter(ii, jj) = rhs(ii, jj);
86 template <
class B,
class U,
int Dim,
char i_1,
char j_1>
91 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
94 for(
int ii = 0; ii < Dim0; ++ii)
95 for(
int jj = 0; jj < Dim1; ++jj)
102 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
105 for(
int ii = 0; ii < Dim0; ++ii)
106 for(
int jj = 0; jj < Dim1; ++jj)
113 template <
class B,
class U,
int Dim,
char i_1,
char j_1>
115 for (
int ii = 0; ii != Dim; ++ii)
116 for (
int jj = 0; jj != Dim; ++jj) {
117 iter(ii, jj) += rhs(ii, jj);
122 template <
class B,
class U,
int Dim,
char i_1,
char j_1>
124 for (
int ii = 0; ii != Dim; ++ii)
125 for (
int jj = 0; jj != Dim; ++jj) {
126 iter(ii, jj) -= rhs(ii, jj);
135 for(
int ii = 0; ii < Dim0; ++ii)
136 for(
int jj = 0; jj < Dim1; ++jj)
145 for(
int ii = 0; ii < Dim0; ++ii)
146 for(
int jj = 0; jj < Dim1; ++jj)
155 for(
int ii = 0; ii < Dim0; ++ii)
156 for(
int jj = 0; jj < Dim1; ++jj)
165 for(
int ii = 0; ii < Dim0; ++ii)
166 for(
int jj = 0; jj < Dim1; ++jj)
175 for(
int ii = 0; ii < Dim0; ++ii)
176 for(
int jj = 0; jj < Dim1; ++jj)
185 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
188 for(
int ii = 0; ii < Dim0; ++ii)
189 for(
int jj = 0; jj < Dim1; ++jj)
196 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
199 for(
int ii = 0; ii < Dim0; ++ii)
200 for(
int jj = 0; jj < Dim1; ++jj)
212 template <
class A,
class T,
int Dim0,
int Dim1,
char i,
char j,
int N>
226 template <
class B,
class U,
int Dim1_0,
int Dim1_1,
char i_1,
char j_1>
229 for(
int ii = 0; ii < Dim0; ++ii)
230 for(
int jj = 0; jj < Dim1; ++jj)
auto & operator=(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator=(const Tensor2_Expr< Dg_number_rhs_0< A, T, N >, T, Dim0, Dim1, i, j > &result)
T operator()(const int N1, const int N2) const
T & operator()(const int N1, const int N2)
auto & operator+=(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator=(const Tensor2_Expr< Tensor2< A, Tensor_Dim0, Tensor_Dim1 >, T, Dim0, Dim1, i, j > &rhs)
auto & operator<<=(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator/=(const U &u)
auto & equals(const Tensor2_symmetric_Expr< B, U, Dim, i_1, j_1 > &rhs)
auto & operator=(const U &u)
auto & operator-=(const U &u)
T operator()(const int N1, const int N2) const
Tensor2_Expr(Tensor2< A, Tensor_Dim0, Tensor_Dim1 > &a)
auto & operator*=(const U &u)
auto & operator=(const Tensor2_symmetric_Expr< B, U, Dim, i_1, j_1 > &rhs)
auto & operator+=(const U &u)
auto & operator>>=(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator=(const FTensor::Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator+=(const Tensor2_symmetric_Expr< B, U, Dim, i_1, j_1 > &rhs)
Tensor2_Expr(const Tensor2_Expr &)=default
T & operator()(const int N1, const int N2)
auto & equals(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
auto & operator-=(const Tensor2_symmetric_Expr< B, U, Dim, i_1, j_1 > &rhs)
Tensor2< A, Tensor_Dim0, Tensor_Dim1 > & iter
auto & operator-=(const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i_1, j_1 > &rhs)
T * ptr(const int N1, const int N2) const
Tensor2_Expr(const Tensor2_Expr &)=default
T operator()(const int N1, const int N2) const
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'j', 3 > j
Tensors class implemented by Walter Landry.
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)
U 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)