X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fclifford.h;h=44757c3e5e980e569ae1f93a0542aa8507881f2b;hp=65ec005fc3bb529f2c0bada54df367c92d9e818a;hb=61e847cdfd8455a7ba67a0038add8dd35b4e0bff;hpb=6b3768e8c544739ae53321539cb4d1e3112ded1b diff --git a/ginac/clifford.h b/ginac/clifford.h index 65ec005f..44757c3e 100644 --- a/ginac/clifford.h +++ b/ginac/clifford.h @@ -2,14 +2,34 @@ * * Interface to GiNaC's clifford objects. */ -#ifndef _CLIFFORD_H_ -#define _CLIFFORD_H_ - -#include +/* + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * 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 + */ -class clifford; +#ifndef __GINAC_CLIFFORD_H__ +#define __GINAC_CLIFFORD_H__ +#include #include "indexed.h" +#include "ex.h" + +#ifndef NO_NAMESPACE_GINAC +namespace GiNaC { +#endif // ndef NO_NAMESPACE_GINAC /** Base class for clifford object */ class clifford : public indexed @@ -20,15 +40,15 @@ class clifford : public indexed public: clifford(); ~clifford(); - clifford(clifford const & other); - clifford const & operator=(clifford const & other); + clifford(const clifford & other); + const clifford & operator=(const clifford & other); protected: - void copy(clifford const & other); + void copy(const clifford & other); void destroy(bool call_parent); // other constructors public: - explicit clifford(string const & initname); + explicit clifford(const string & initname); // functions overriding virtual functions from base classes public: @@ -39,8 +59,8 @@ public: void printcsrc(ostream & os, unsigned type, unsigned upper_precedence=0) const; bool info(unsigned inf) const; protected: - int compare_same_type(basic const & other) const; - ex simplify_ncmul(exvector const & v) const; + int compare_same_type(const basic & other) const; + ex simplify_ncmul(const exvector & v) const; unsigned calchash(void) const; // new virtual functions which can be overridden by derived classes @@ -48,7 +68,7 @@ protected: // non-virtual functions in this class public: - void setname(string const & n); + void setname(const string & n); private: string & autoname_prefix(void); @@ -64,12 +84,16 @@ private: // global constants extern const clifford some_clifford; -extern type_info const & typeid_clifford; - -// macros +extern const type_info & typeid_clifford; -#define ex_to_clifford(X) static_cast(*(X).bp) - -#endif // ndef _CLIFFORD_H_ +// utility functions +inline const clifford &ex_to_clifford(const ex &e) +{ + return static_cast(*e.bp); +} +#ifndef NO_NAMESPACE_GINAC +} // namespace GiNaC +#endif // ndef NO_NAMESPACE_GINAC +#endif // ndef __GINAC_CLIFFORD_H__