X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;ds=sidebyside;f=ginac%2Fncmul.h;h=65faed2e4e534f06d5eb275056a8cde562c8d41f;hb=22abfbe8c78e339188096a5bf749a7c2d4f0a368;hp=072ebfbbd13ea19cac4cfd45856c2e7771ca820d;hpb=68fdf425abf14d016d5f95ee7b9d06a19a3c5926;p=ginac.git diff --git a/ginac/ncmul.h b/ginac/ncmul.h index 072ebfbb..65faed2e 100644 --- a/ginac/ncmul.h +++ b/ginac/ncmul.h @@ -3,7 +3,7 @@ * Interface to GiNaC's non-commutative products of expressions. */ /* - * GiNaC Copyright (C) 1999-2003 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_NCMUL_H__ @@ -49,11 +49,10 @@ public: ncmul(const ex & f1, const ex & f2, const ex & f3, const ex & f4, const ex & f5, const ex & f6); ncmul(const exvector & v, bool discardable=false); - ncmul(exvector * vp); // vp will be deleted + ncmul(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 50;} bool info(unsigned inf) const; int degree(const ex & s) const; @@ -64,7 +63,8 @@ public: ex evalm() const; exvector get_free_indices() const; ex thiscontainer(const exvector & v) const; - ex thiscontainer(exvector * vp) const; + ex thiscontainer(std::auto_ptr vp) const; + ex conjugate() const; protected: ex derivative(const symbol & s) const; @@ -76,9 +76,11 @@ protected: // non-virtual functions in this class protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_csrc(const print_context & c, unsigned level) const; size_t count_factors(const ex & e) const; void append_factors(exvector & v, const ex & e) const; - exvector expandchildren(unsigned options) const; + std::auto_ptr expandchildren(unsigned options) const; public: const exvector & get_factors() const; };