X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Findexed.h;h=8288441f441815a610219763fa271cda48ae1143;hb=c7f03540d5eb09c5dbe013924abe21ea470948f6;hp=f4891490a09d7d8b84521e17773977025074c11b;hpb=6d225ee55693c0617d254e6fa283c00c71bd2919;p=ginac.git diff --git a/ginac/indexed.h b/ginac/indexed.h index f4891490..8288441f 100644 --- a/ginac/indexed.h +++ b/ginac/indexed.h @@ -3,7 +3,7 @@ * Interface to GiNaC's indexed expressions. */ /* - * 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 */ #ifndef __GINAC_INDEXED_H__ @@ -172,7 +172,8 @@ public: exvector get_dummy_indices() const; /** Return a vector containing the dummy indices in the contraction with - * another indexed object. */ + * another indexed object. This is symmetric: a.get_dummy_indices(b) + * == b.get_dummy_indices(a) */ exvector get_dummy_indices(const indexed & other) const; /** Check whether the object has an index that forms a dummy index pair @@ -249,6 +250,23 @@ template<> inline bool is_exactly_a(const basic & obj) return obj.tinfo()==TINFO_indexed; } +/** Returns all dummy indices from the expression */ +exvector get_all_dummy_indices(const ex & e); + +/** Returns b with all dummy indices, which are common with a, renamed */ +ex rename_dummy_indices_uniquely(const ex & a, const ex & b); + +/** This function returns the given expression with expanded sums + * for all dummy index summations, where the dimensionality of + * the dummy index is a nonnegative integer. + * Optionally all indices with a variance will be substituted by + * indices with the corresponding numeric values without variance. + * + * @param e the given expression + * @param subs_idx indicates if variance of dummy indixes should be neglected + */ +ex expand_dummy_sum(const ex & e, bool subs_idx = false); + } // namespace GiNaC #endif // ndef __GINAC_INDEXED_H__