X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fclifford.h;h=d77707964f1d1d9f9dfb0d637f37fd48bbf705e9;hp=8dbc3767ddb94330fee5530ab7a90f7a0fb52489;hb=d54e497297f4687c385ff8fbc91296365887c7c0;hpb=68fdf425abf14d016d5f95ee7b9d06a19a3c5926;ds=sidebyside diff --git a/ginac/clifford.h b/ginac/clifford.h index 8dbc3767..d7770796 100644 --- a/ginac/clifford.h +++ b/ginac/clifford.h @@ -45,17 +45,14 @@ public: // internal constructors clifford(unsigned char rl, const exvector & v, bool discardable = false); - clifford(unsigned char rl, exvector * vp); // vp will be deleted + clifford(unsigned char rl, std::auto_ptr vp); // functions overriding virtual functions from base classes -public: - void print(const print_context & c, unsigned level = 0) const; - protected: ex eval_ncmul(const exvector & v) const; bool match_same_type(const basic & other) 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::noncommutative; } unsigned return_type_tinfo() const { return TINFO_clifford + representation_label; } @@ -63,6 +60,10 @@ protected: public: unsigned char get_representation_label() const {return representation_label;} +protected: + void do_print_dflt(const print_dflt & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; + // member variables private: unsigned char representation_label; /**< Representation label to distinguish independent spin lines */ @@ -74,9 +75,10 @@ class diracone : public tensor { GINAC_DECLARE_REGISTERED_CLASS(diracone, tensor) - // functions overriding virtual functions from base classes -public: - void print(const print_context & c, unsigned level = 0) const; + // non-virtual functions in this class +protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; }; @@ -87,8 +89,12 @@ class diracgamma : public tensor // functions overriding virtual functions from base classes public: - void print(const print_context & c, unsigned level = 0) const; bool contract_with(exvector::iterator self, exvector::iterator other, exvector & v) const; + + // non-virtual functions in this class +protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; }; @@ -98,9 +104,10 @@ class diracgamma5 : public tensor { GINAC_DECLARE_REGISTERED_CLASS(diracgamma5, tensor) - // functions overriding virtual functions from base classes -public: - void print(const print_context & c, unsigned level = 0) const; + // non-virtual functions in this class +protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; }; @@ -110,9 +117,10 @@ class diracgammaL : public tensor { GINAC_DECLARE_REGISTERED_CLASS(diracgammaL, tensor) - // functions overriding virtual functions from base classes -public: - void print(const print_context & c, unsigned level = 0) const; + // non-virtual functions in this class +protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; }; @@ -122,9 +130,10 @@ class diracgammaR : public tensor { GINAC_DECLARE_REGISTERED_CLASS(diracgammaR, tensor) - // functions overriding virtual functions from base classes -public: - void print(const print_context & c, unsigned level = 0) const; + // non-virtual functions in this class +protected: + void do_print(const print_context & c, unsigned level) const; + void do_print_latex(const print_latex & c, unsigned level) const; }; @@ -169,6 +178,7 @@ ex dirac_gammaR(unsigned char rl = 0); /** Create a term of the form e_mu * gamma~mu with a unique index mu. * + * @param e Original expression * @param dim Dimension of index * @param rl Representation label */ ex dirac_slash(const ex & e, const ex & dim, unsigned char rl = 0);