From 4e4f76e1b800566ec87058f466a6bbcaa2cfdc25 Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Sat, 25 Jan 2003 00:29:20 +0000 Subject: [PATCH] delta tensor makes itself square --- ginac/tensor.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ginac/tensor.cpp b/ginac/tensor.cpp index f158ae65..1574bb66 100644 --- a/ginac/tensor.cpp +++ b/ginac/tensor.cpp @@ -180,6 +180,13 @@ ex tensdelta::eval_indexed(const basic & i) const const idx & i1 = ex_to(i.op(1)); const idx & i2 = ex_to(i.op(2)); + // The dimension of the indices must be equal, otherwise we use the minimal + // 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))); + } + // Trace of delta tensor is the (effective) dimension of the space if (is_dummy_pair(i1, i2)) { try { -- 2.47.0