X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Florentzidx.h;h=6cd5fc2a7b8f089c5430c9fb6264ef5e4b704e60;hp=001494088735c39fc96002ab234e442bc9cc48af;hb=83c1a0ba18b918a02fea05272d6e9e514880b707;hpb=66c0f31c678e6c1938d637636b230ea376c157c1 diff --git a/ginac/lorentzidx.h b/ginac/lorentzidx.h index 00149408..6cd5fc2a 100644 --- a/ginac/lorentzidx.h +++ b/ginac/lorentzidx.h @@ -1,8 +1,9 @@ /** @file lorentzidx.h * - * Interface to GiNaC's lorentz indices. - * - * GiNaC Copyright (C) 1999 Johannes Gutenberg University Mainz, Germany + * Interface to GiNaC's lorentz indices. */ + +/* + * GiNaC Copyright (C) 1999-2000 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 @@ -24,10 +25,16 @@ #include #include -#include +#include "idx.h" + +#ifndef NO_NAMESPACE_GINAC +namespace GiNaC { +#endif // ndef NO_NAMESPACE_GINAC class lorentzidx : public idx { + GINAC_DECLARE_REGISTERED_CLASS(lorentzidx, idx) + friend class simp_lor; friend class scalar_products; @@ -37,20 +44,20 @@ class lorentzidx : public idx public: lorentzidx(); ~lorentzidx(); - lorentzidx (lorentzidx const & other); - lorentzidx const & operator=(lorentzidx const & other); + lorentzidx (const lorentzidx & other); + const lorentzidx & operator=(const lorentzidx & other); protected: - void copy(lorentzidx const & other); + void copy(const lorentzidx & other); void destroy(bool call_parent); // other constructors public: explicit lorentzidx(bool cov, bool oonly=false, unsigned dimp=0); - explicit lorentzidx(string const & n, bool cov=false, + explicit lorentzidx(const string & n, bool cov=false, bool oonly=false, unsigned dimp=0); - explicit lorentzidx(char const * n, bool cov=false, + explicit lorentzidx(const char * n, bool cov=false, bool oonly=false, unsigned dimp=0); - explicit lorentzidx(unsigned const v, bool cov=false); + explicit lorentzidx(unsigned v, bool cov=false); // functions overriding virtual functions from bases classes public: @@ -78,10 +85,16 @@ protected: // global constants extern const lorentzidx some_lorentzidx; -extern type_info const & typeid_lorentzidx; +extern const type_info & typeid_lorentzidx; -// macros +// utility functions +inline const lorentzidx &ex_to_lorentzidx(const ex &e) +{ + return static_cast(*e.bp); +} -#define ex_to_lorentzidx(X) (static_cast(*(X).bp)) +#ifndef NO_NAMESPACE_GINAC +} // namespace GiNaC +#endif // ndef NO_NAMESPACE_GINAC #endif // ndef __GINAC_LORENTZIDX_H__