v0.9.0
permute.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Permutation2.hpp"
4 #include "Permutation3.hpp"
5 #include "Permutation4.hpp"
6 
7 namespace FTensor
8 {
9  template <class A, class T, class B, class U, int Dim0_0, int Dim0_1,
10  int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
13  const int N0, const int N1)
14  {
15  return Permutation2<Dim0_0, Dim0_1, i0, j0>().eval(rhs, N0, N1);
16  }
17 
18  template <class A, class T, class B, class U, int Dim0_0, int Dim0_1,
19  int Dim0_2, int Dim1_0, int Dim1_1, int Dim1_2, char i0, char j0,
20  char k0, char i1, char j1, char k1>
23  const int N0, const int N1, const int N2)
24  {
26  N2);
27  }
28 
29  template <class A, class T, class B, class U, int Dim0_0, int Dim0_1,
30  int Dim0_2, int Dim0_3, int Dim1_0, int Dim1_1, int Dim1_2,
31  int Dim1_3, char i0, char j0, char k0, char l0, char i1, char j1,
32  char k1, char l1>
36  &rhs,
37  const int N0, const int N1, const int N2, const int N3)
38  {
40  rhs, N0, N1, N2, N3);
41  }
42 
43  template <class A, class T, class B, class U, int Dim0_0, int Dim0_1,
44  int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
47  const int N0, const int N1) {
48  return Permutation2<Dim0_0, Dim0_1, i0, j0>().eval_ref(rhs, N0, N1);
49  }
50 }
U eval(const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &rhs, const int N0, const int N1, const int N2)
Fully Antisymmetric Levi-Civita Tensor.
U eval(const Tensor4_Expr< B, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &rhs, const int N0, const int N1, const int N2, const int N3)
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)
Definition: permute.hpp:11
U & eval_ref(const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &rhs, const int N0, const int N1)
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)
Definition: permute.hpp:45
U eval(const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &rhs, const int N0, const int N1)