I am writing code that deals with contractions of large tensors which possess high symmetry.

As an example, I have a tensor `g`

whose certain entries are read from a data file. The remaining entries are entered using the permutational symmetries

```
g[K,L,I,J]=g[I,J,K,L]
g[J,I,L,K]=g[I,J,K,L]
g[L,K,J,I]=g[I,J,K,L]
g[J,I,K,L]=g[I,J,K,L]
g[L,K,I,J]=g[I,J,K,L]
g[I,J,L,K]=g[I,J,K,L]
g[K,L,J,I]=g[I,J,K,L]
```

I know that Tensorial.jl has support for `SymmetricFourthOrderTensors`

, but I cannot figure out how exactly to exploit the symmetry in question. As a direct example of where it might be helpful :

I am dealing with contractions like

```
@tensor Trm2[a_1,a_2,i_1,i_2] := - g_voov[a_1,i_3,i_1,a_3] * T2[a_2,a_3,i_3,i_2]
```

Where each tensor can be of rank `60x60x10x10`

, which is quite large. However, the tensors on the RHS `g_voov`

and `T2`

posses many permutational symmetries which are not being exploited in TensorOperation.jl 's `@tensor`

macro inheretly. Tensoril.jl 's Benchmarks indicate we can get massive speedups when using tensors of appropriate symmetry class. It would be really helpful if someone could give me a direction in which I can move in to start exploiting these symmetries using the Tensorial.jl package. Whenever I am dealing with these contractions, the tensors like `g_voov`

are going to be read from the disk. Is there any way to auto-detect the symmetries during reading the binaries ? Or if I am aware beforehand of the symmetries : How can I initialize the tensor in memory such that the program is aware of the symmetries.