Alamo
Matrix4.H
Go to the documentation of this file.
1 #include "Set/Set.H"
2 namespace Test
3 {
4 namespace Set
5 {
6 template <int dim, ::Set::Sym sym>
7 class Matrix4
8 {
9 public:
10  int SymmetryTest(int /*verbose*/)
11  {
13 
14  //Util::Message(INFO,matrix);
15  //std::cout << matrix << std::endl;
16  if (sym == ::Set::Sym::None)
17  return 0;
18  if (sym == ::Set::Sym::MajorMinor)
19  {
20  for (int i = 0; i < dim; i++)
21  for (int j = 0; j < dim; j++)
22  for (int k = 0; k < dim; k++)
23  for (int l = 0; l < dim; l++)
24  {
25  if (matrix(i,j,k,l) != matrix(k,l,i,j)) return 1; // breaks major symmetry
26  if (matrix(i,j,k,l) != matrix(i,j,l,k)) return 1; // breaks minor symmetry
27  if (matrix(i,j,k,l) != matrix(j,i,k,l)) return 1; // breaks minor symmetry
28  }
29  return 0;
30  }
31  if (sym == ::Set::Sym::Full)
32  {
33  for (int i = 0; i < dim; i++)
34  for (int j = 0; j < dim; j++)
35  for (int k = 0; k < dim; k++)
36  for (int l = 0; l < dim; l++)
37  {
38  if (matrix(i,j,k,l) != matrix(i,j,l,k)) return 1;
39  if (matrix(i,j,k,l) != matrix(i,k,j,l)) return 1;
40  if (matrix(i,j,k,l) != matrix(i,k,l,j)) return 1;
41  if (matrix(i,j,k,l) != matrix(i,l,j,k)) return 1;
42  if (matrix(i,j,k,l) != matrix(i,l,k,j)) return 1;
43  if (matrix(i,j,k,l) != matrix(j,i,k,l)) return 1;
44  if (matrix(i,j,k,l) != matrix(j,i,l,k)) return 1;
45  if (matrix(i,j,k,l) != matrix(j,k,i,l)) return 1;
46  if (matrix(i,j,k,l) != matrix(j,k,l,i)) return 1;
47  if (matrix(i,j,k,l) != matrix(j,l,i,k)) return 1;
48  if (matrix(i,j,k,l) != matrix(j,l,k,i)) return 1;
49  if (matrix(i,j,k,l) != matrix(k,i,j,l)) return 1;
50  if (matrix(i,j,k,l) != matrix(k,i,l,j)) return 1;
51  if (matrix(i,j,k,l) != matrix(k,j,i,l)) return 1;
52  if (matrix(i,j,k,l) != matrix(k,j,l,i)) return 1;
53  if (matrix(i,j,k,l) != matrix(k,l,i,j)) return 1;
54  if (matrix(i,j,k,l) != matrix(k,l,j,i)) return 1;
55  if (matrix(i,j,k,l) != matrix(l,i,j,k)) return 1;
56  if (matrix(i,j,k,l) != matrix(l,i,k,j)) return 1;
57  if (matrix(i,j,k,l) != matrix(l,j,i,k)) return 1;
58  if (matrix(i,j,k,l) != matrix(l,j,k,i)) return 1;
59  if (matrix(i,j,k,l) != matrix(l,k,i,j)) return 1;
60  if (matrix(i,j,k,l) != matrix(l,k,j,i)) return 1;
61  }
62  return 0;
63  }
64 
65 
66  return 1;
67  }
68 };
69 }
70 }
Set::Full
@ Full
Definition: Base.H:197
Set::MajorMinor
@ MajorMinor
Definition: Base.H:197
Test::Set::Matrix4
Definition: Matrix4.H:7
Set::None
@ None
Definition: Base.H:197
Set
A collection of data types and symmetry-reduced data structures.
Definition: Base.H:17
Set.H
Test
Definition: GB.H:7
Test::Set::Matrix4::SymmetryTest
int SymmetryTest(int)
Definition: Matrix4.H:10