]> www.ginac.de Git - ginac.git/blobdiff - ginac/tensor.cpp
hash value computation for indices takes index dimension into account
[ginac.git] / ginac / tensor.cpp
index d78eff6604078ebf1b913e63d4682bba54c7c20f..302c0f63e249422a390aca34df6fc739c1df3c0e 100644 (file)
@@ -171,7 +171,10 @@ ex tensdelta::eval_indexed(const basic & i) const
        // dimension
        if (!i1.get_dim().is_equal(i2.get_dim())) {
                ex min_dim = i1.minimal_dim(i2);
-               return i.subs(lst(i1 == i1.replace_dim(min_dim), i2 == i2.replace_dim(min_dim)));
+               exmap m;
+               m[i1] = i1.replace_dim(min_dim);
+               m[i2] = i2.replace_dim(min_dim);
+               return i.subs(m, subs_options::no_pattern);
        }
 
        // Trace of delta tensor is the (effective) dimension of the space
@@ -212,7 +215,10 @@ ex tensmetric::eval_indexed(const basic & i) const
        // dimension
        if (!i1.get_dim().is_equal(i2.get_dim())) {
                ex min_dim = i1.minimal_dim(i2);
-               return i.subs(lst(i1 == i1.replace_dim(min_dim), i2 == i2.replace_dim(min_dim)));
+               exmap m;
+               m[i1] = i1.replace_dim(min_dim);
+               m[i2] = i2.replace_dim(min_dim);
+               return i.subs(m, subs_options::no_pattern);
        }
 
        // A metric tensor with one covariant and one contravariant index gets