X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;ds=sidebyside;f=ginac%2Fcoloridx.h;h=d9424e58c5293331d31cb0f60415f89ba230a66c;hb=dc074d042a23f07350f0c2c68a2477763a5aaba0;hp=266dcf9276be0c25852b91b71462b0d7ed1d526b;hpb=a331d1fd814315cd934c4f0ebf0cf485dc52fe96;p=ginac.git diff --git a/ginac/coloridx.h b/ginac/coloridx.h index 266dcf92..d9424e58 100644 --- a/ginac/coloridx.h +++ b/ginac/coloridx.h @@ -3,7 +3,7 @@ * Interface to GiNaC's color indices. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2001 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 @@ -25,60 +25,67 @@ #include #include -#include -#include +#include "idx.h" +#include "ex.h" -#ifndef NO_GINAC_NAMESPACE +#ifndef NO_NAMESPACE_GINAC namespace GiNaC { -#endif // ndef NO_GINAC_NAMESPACE +#endif // ndef NO_NAMESPACE_GINAC + +/** Class of indices for color algebra objects, to tell them apart from + * other index families like Lorentz indices. The color indices are the + * indices of the SU(3) generators T_a, so they lie in the range of 0 to 7. + * Note that this kind of index is different from the indices carried by + * elements of a specific matrix representation of su(3). Such indices are + * always hidden in our implementation and we are not concerned with them. */ class coloridx : public idx { - GINAC_DECLARE_REGISTERED_CLASS(coloridx, idx) + GINAC_DECLARE_REGISTERED_CLASS(coloridx, idx) - friend class color; + friend class color; // member functions - // default constructor, destructor, copy constructor assignment operator and helpers + // default constructor, destructor, copy constructor assignment operator and helpers public: - coloridx(); - ~coloridx(); - coloridx (const coloridx & other); - const coloridx & operator=(const coloridx & other); + coloridx(); + ~coloridx(); + coloridx (const coloridx & other); + const coloridx & operator=(const coloridx & other); protected: - void copy(const coloridx & other); - void destroy(bool call_parent); + void copy(const coloridx & other); + void destroy(bool call_parent); - // other constructors + // other constructors public: - explicit coloridx(bool cov); - explicit coloridx(const string & n, bool cov=false); - explicit coloridx(const char * n, bool cov=false); - explicit coloridx(unsigned v, bool cov=false); + explicit coloridx(bool cov); + explicit coloridx(const std::string & n, bool cov=false); + explicit coloridx(const char * n, bool cov=false); + explicit coloridx(unsigned v, bool cov=false); - // functions overriding virtual functions from bases classes + // functions overriding virtual functions from bases classes public: - basic * duplicate() const; - void printraw(ostream & os) const; - void printtree(ostream & os, unsigned indent) const; - void print(ostream & os, unsigned upper_precedence=0) const; - bool info(unsigned inf) const; + basic * duplicate() const; + void printraw(std::ostream & os) const; + void printtree(std::ostream & os, unsigned indent) const; + void print(std::ostream & os, unsigned upper_precedence=0) const; + bool info(unsigned inf) const; - // new virtual functions which can be overridden by derived classes - // none + // new virtual functions which can be overridden by derived classes + // none - // non-virtual functions in this class - // none + // non-virtual functions in this class + // none - // member variables - // none + // member variables + // none }; // global constants extern const coloridx some_coloridx; -extern const type_info & typeid_coloridx; +extern const std::type_info & typeid_coloridx; // utility functions inline const coloridx &ex_to_coloridx(const ex &e) @@ -86,8 +93,8 @@ inline const coloridx &ex_to_coloridx(const ex &e) return static_cast(*e.bp); } -#ifndef NO_GINAC_NAMESPACE +#ifndef NO_NAMESPACE_GINAC } // namespace GiNaC -#endif // ndef NO_GINAC_NAMESPACE +#endif // ndef NO_NAMESPACE_GINAC #endif // ndef __GINAC_COLORIDX_H__