[GiNaC-devel] Bug(?) in reposition_dummy_indices: test case and patch

Chris Dams Chris.Dams at mi.infn.it
Fri Sep 8 18:02:13 CEST 2006


Dear all,

On Wed, 30 Aug 2006, Chris Dams wrote:

> What about modifying the canonicalization code in symmetry.cpp, then? We
> could at first decide the canonical form based only on the values and
> dimensions of the indices. Not on their variance. If that does not give a
> prefered ordering we would order them the same way as is done now.  
> Besides that, we should reject a toggling of indices in reposition_dummy
> indices if it results in an expression with reordered indices. Does this
> sound any better?

I now patched the function reposition_dummy_indices to fix this. The idea
is that the problem Alexei pointed out can only occur if there are
varidxes involved in a cyclic symmetry. In that case the function
reposition_dummy_indices now starts by trying out all variations obtained
by raising/lowering varidxes that occur in dummy pairs of the tensor
object that is given to reposition_dummy_indices. Of these posibilities
the one that is the smallest in the sense of ex_is_less is chosen. The
dummy indices that have taken part in this trying out of all posibilities
are removed from the vector variant_dummy_indices. After that there
shouldn't be a problem anymore using the rest of the function
reposition_dummy_indices as it always has been.

Best wishes,
Chris




More information about the GiNaC-devel mailing list