X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=check%2Fexam_indexed.cpp;h=e8560b54b5dd4214edd7c0613be7885d8c58f208;hb=606c7c82026ad4323076fc89c5b2ecb2f0457536;hp=3d9b307db4f26fdcc33f8a6d245bb97fa41a973c;hpb=6d225ee55693c0617d254e6fa283c00c71bd2919;p=ginac.git diff --git a/check/exam_indexed.cpp b/check/exam_indexed.cpp index 3d9b307d..e8560b54 100644 --- a/check/exam_indexed.cpp +++ b/check/exam_indexed.cpp @@ -3,7 +3,7 @@ * Here we test manipulations on GiNaC's indexed objects. */ /* - * GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2005 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "exams.h" @@ -375,6 +375,15 @@ static unsigned dummy_check() e = indexed(p, mu.toggle_variance(), mu) - indexed(p, nu, nu.toggle_variance()); result += check_equal_simplify(e, 0); + // GiNaC 1.2.1 had a bug here because p.i*p.i -> (p.i)^2 + e = indexed(p, i) * indexed(p, i) * indexed(p, j) + indexed(p, j); + ex fi = exprseq(e.get_free_indices()); + if (!fi.is_equal(exprseq(j))) { + clog << "get_free_indices(" << e << ") erroneously returned " + << fi << " instead of (.j)" << endl; + ++result; + } + return result; }