In: AllContractions[ RiemannCD[a,b,c,d]RiemannCD[e,f,g,h] ];The last two contractions are actually not independent, but are related to each other via the Bianchi identity. But that's a multi-term symmetry, and unfortunately AllContractions doesn't take those into account.
Out: { R2,RabRab,RabcdRabcd,RacbdRabcd }
Other functions, such as TensorCollect and SolveConstants should also see some speed improvements. And besides the usual bugfixes there are nice new functions such as SolveTensors (which can solve a system of linear tensorial equations in terms of tensors) and IndexConfigurations. The latter gives all possible independent index configurations of an expression. For example:
In: IndexConfigurations[ metric[a,b]metric[c,d] ];Here's another example:
Out: { gabgcd,gacgbd,gadgbc }
In: IndexConfigurations[ RiemannCD[a,b,c,d] ];Note that the three different index configurations of the Riemann tensor are actually not independent due to the Bianchi identity. Like AllContractions, IndexConfigurations doesn't take these multi-term symmetries into account.
Out: { Rabcd,Racbd,Radbc }
xTras 1.0.6 has some more improvements; check the Changelog for details. As usual, the new version can be downloaded from its www.xact.es/xtras.