X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fclifford.h;h=2d33631d0cad07930152550caf55515c8aae7fc9;hb=2893c8e04685b99317384ff02a0fefc899f499f9;hp=48d28139f5cfdf84c486175f03662e182f761c02;hpb=3ac17e18ada69428fe170c10abcc5f33a30f0676;p=ginac.git diff --git a/ginac/clifford.h b/ginac/clifford.h index 48d28139..2d33631d 100644 --- a/ginac/clifford.h +++ b/ginac/clifford.h @@ -41,6 +41,8 @@ namespace GiNaC { class clifford : public indexed { GINAC_DECLARE_REGISTERED_CLASS(clifford, indexed) +public: + static const tinfo_static_t return_type_tinfo_static[256]; // other constructors public: @@ -60,7 +62,7 @@ protected: ex thiscontainer(const exvector & v) const; ex thiscontainer(std::auto_ptr vp) const; unsigned return_type() const { return return_types::noncommutative; } - const basic* return_type_tinfo() const { return this; } + tinfo_t return_type_tinfo() const { return clifford::return_type_tinfo_static+representation_label; } // non-virtual functions in this class public: @@ -186,6 +188,12 @@ protected: // global functions +/** Check whether a given tinfo key (as returned by return_type_tinfo() + * is that of a clifford object (with an arbitrary representation label). + * + * @param ti tinfo key */ +bool is_clifford_tinfo(tinfo_t ti); + /** Create a Clifford unity object. * * @param rl Representation label