X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Findexed.h;h=aac4625c8d6f37a4ca06b461222ec3ff3c2ca993;hp=21947ff03728994518d4d0189b44e9b793805b63;hb=a68aee97d9ebdac8a6ac81f1e41961e6bc792468;hpb=68fdf425abf14d016d5f95ee7b9d06a19a3c5926 diff --git a/ginac/indexed.h b/ginac/indexed.h index 21947ff0..aac4625c 100644 --- a/ginac/indexed.h +++ b/ginac/indexed.h @@ -3,7 +3,7 @@ * Interface to GiNaC's indexed expressions. */ /* - * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2004 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 @@ -140,11 +140,10 @@ public: // internal constructors indexed(const symmetry & symm, const exprseq & es); indexed(const symmetry & symm, const exvector & v, bool discardable = false); - indexed(const symmetry & symm, exvector * vp); // vp will be deleted + indexed(const symmetry & symm, std::auto_ptr vp); // functions overriding virtual functions from base classes public: - void print(const print_context & c, unsigned level = 0) const; unsigned precedence() const {return 55;} bool info(unsigned inf) const; ex eval(int level = 0) const; @@ -153,7 +152,7 @@ public: protected: ex derivative(const symbol & s) const; ex thiscontainer(const exvector & v) const; - ex thiscontainer(exvector * vp) const; + ex thiscontainer(std::auto_ptr vp) const; unsigned return_type() const { return return_types::commutative; } ex expand(unsigned options = 0) const; @@ -173,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 @@ -185,6 +185,10 @@ public: protected: void printindices(const print_context & c, unsigned level) const; + void print_indexed(const print_context & c, const char *openbrace, const char *closebrace, unsigned level) const; + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; + void do_print_tree(const print_tree & c, unsigned level) const; void validate() const; // member variables