From cbauer at thep.physik.uni-mainz.de Mon Jan 27 19:14:01 2003 From: cbauer at thep.physik.uni-mainz.de (Christian Bauer) Date: Mon, 27 Jan 2003 19:14:01 +0100 Subject: GiNaC 1.0.13 now available Message-ID: <20030127181401.GO28018@doraemon.physik.uni-mainz.de> Hello! The GiNaC Development Group (which is effectively reduced to one member now) wishes everybody a Happy New Year (belatedly) and a Happy , and is proud to present GiNaC 1.0.13, the latest in C++-based made-for-physicists- but-useful-for-other-people-too computer algebra library technology. Now with these exciting new features: * Contracting epsilon tensors with Euclidean indices now works. * Improved dummy index symmetrization in sums. * Added dirac_gammaL/R(), which can be used instead of dirac_gamma6/7() but are single objects, to allow for a more compact notation of Dirac strings. * Powers with negative numeric exponents are printed as fractions in the LaTeX output. * Added symbolic_matrix() for the convenient creation of matrices filled with symbols. * Added collect_common_factors() which collects common factors from the terms of sums. * simplify_indexed() converts "gamma~mu*p.mu" to "p\". As usual, it's available from our FTP server: ftp://ftpthep.physik.uni-mainz.de/pub/GiNaC Happy computing, Christian -- / Coding on PowerPC and proud of it \/ http://www.uni-mainz.de/~bauec002/ From chrisd at sci.kun.nl Tue Jan 28 18:36:20 2003 From: chrisd at sci.kun.nl (Chris Dams) Date: Tue, 28 Jan 2003 17:36:20 +0000 (UTC) Subject: problem with simplify_indexed plus patch Message-ID: Hello, I encountered the problem that after calling simplify_indexed, some of the symbols used in indices appeared three times in some of the terms. Before simplify_indexed was called this was not the case. The problem seems to be that in the function rename_dummy_indices, indices are compared by calling ex_is_equal on two of them. However, it may happen that the indices that are compared this way have the same value but different dimension. If that happens, they are considered not to be the same, but as far as dummy indices renaming is concerned but I think they should be considered the same. The attached patch is supposed to fix this. Greetings, Chris Dams -------------- next part -------------- Index: ex.h =================================================================== RCS file: /home/cvs/GiNaC/ginac/ex.h,v retrieving revision 1.54.2.8 diff -r1.54.2.8 ex.h 482a483,486 > struct op0_is_equal : public std::binary_function { > bool operator() (const ex &lh, const ex &rh) const { return lh.op(0).is_equal(rh.op(0)); } > }; > Index: indexed.cpp =================================================================== RCS file: /home/cvs/GiNaC/ginac/indexed.cpp,v retrieving revision 1.65.2.15 diff -r1.65.2.15 indexed.cpp 39a40 > #include "symbol.h" 535c536 < if (find_if(global_dummy_indices.begin(), global_dummy_indices.end(), bind2nd(ex_is_equal(), *it)) == global_dummy_indices.end()) { --- > if (find_if(global_dummy_indices.begin(), global_dummy_indices.end(), bind2nd(op0_is_equal(), *it)) == global_dummy_indices.end()) { 908c909 < { --- > { 1093a1095 > From chrisd at sci.kun.nl Thu Jan 30 17:16:54 2003 From: chrisd at sci.kun.nl (Chris Dams) Date: Thu, 30 Jan 2003 16:16:54 +0000 (UTC) Subject: Yet another improvement for simplified_indexed Message-ID: Hello everybody, I discovered that in the function rename_dummy_indices in indexed.cpp. The line for (unsigned i=0; i