X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Flortensor.cpp;h=8a30034eca4af1c8deea7f4a55552f903e622897;hp=1854af0b5b9eada1173667bc84c397bf21f4ba5e;hb=be6cad814c18ff39f4e16c32441e98e6d72f32d4;hpb=955cb185a85535ab328ffedbfccdc508ce80fa91 diff --git a/ginac/lortensor.cpp b/ginac/lortensor.cpp index 1854af0b..8a30034e 100644 --- a/ginac/lortensor.cpp +++ b/ginac/lortensor.cpp @@ -4,7 +4,7 @@ * No real implementation yet, do be done. */ /* - * GiNaC Copyright (C) 1999 Johannes Gutenberg University Mainz, Germany + * 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 @@ -40,10 +40,11 @@ #include "power.h" #include "symbol.h" #include "utils.h" +#include "config.h" -#ifndef NO_GINAC_NAMESPACE +#ifndef NO_NAMESPACE_GINAC namespace GiNaC { -#endif // ndef NO_GINAC_NAMESPACE +#endif // ndef NO_NAMESPACE_GINAC ////////// // default constructor, destructor, copy constructor assignment operator and helpers @@ -65,13 +66,13 @@ lortensor::~lortensor() destroy(0); } -lortensor::lortensor(lortensor const & other) +lortensor::lortensor(const lortensor & other) { debugmsg("lortensor copy constructor",LOGLEVEL_CONSTRUCT); copy (other); } -lortensor const & lortensor::operator=(lortensor const & other) +const lortensor & lortensor::operator=(const lortensor & other) { debugmsg("lortensor operator=",LOGLEVEL_ASSIGNMENT); if (this != & other) { @@ -83,7 +84,7 @@ lortensor const & lortensor::operator=(lortensor const & other) //protected -void lortensor::copy(lortensor const & other) +void lortensor::copy(const lortensor & other) { indexed::copy(other); type=other.type; @@ -104,14 +105,14 @@ void lortensor::destroy(bool call_parent) // protected -lortensor::lortensor(lortensor_types const lt, string const & n) : type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n) : type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string",LOGLEVEL_CONSTRUCT); serial=next_serial++; tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu) : indexed(mu), type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n, const ex & mu) : indexed(mu), type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string,ex",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -119,7 +120,7 @@ lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu) tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, ex const & nu) : indexed(mu,nu), type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n, const ex & mu, const ex & nu) : indexed(mu,nu), type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string,ex,ex",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -127,7 +128,7 @@ lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, ex const & nu, ex const & rho) : indexed(mu,nu,rho), type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n, const ex & mu, const ex & nu, const ex & rho) : indexed(mu,nu,rho), type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string,ex,ex,ex",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -135,7 +136,7 @@ lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, ex const & nu, ex const & rho, ex const & sigma) : indexed(mu,nu,rho,sigma), type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n, const ex & mu, const ex & nu, const ex & rho, const ex & sigma) : indexed(mu,nu,rho,sigma), type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string,ex,ex,ex,ex",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -143,7 +144,7 @@ lortensor::lortensor(lortensor_types const lt, string const & n, ex const & mu, tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, exvector const & iv) : indexed(iv), type(lt), name(n) +lortensor::lortensor(lortensor_types const lt, const string & n, const exvector & iv) : indexed(iv), type(lt), name(n) { debugmsg("lortensor constructor from lortensor_types,string,exvector",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -151,14 +152,14 @@ lortensor::lortensor(lortensor_types const lt, string const & n, exvector const tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, unsigned s, exvector const & iv) : indexed(iv), type(lt), name(n), serial(s) +lortensor::lortensor(lortensor_types const lt, const string & n, unsigned s, const exvector & iv) : indexed(iv), type(lt), name(n), serial(s) { debugmsg("lortensor constructor from lortensor_types,string,unsigned,exvector",LOGLEVEL_CONSTRUCT); GINAC_ASSERT(all_of_type_lorentzidx()); tinfo_key=TINFO_lortensor; } -lortensor::lortensor(lortensor_types const lt, string const & n, unsigned s, exvector *ivp) : indexed(ivp), type(lt), name(n), serial(s) +lortensor::lortensor(lortensor_types const lt, const string & n, unsigned s, exvector *ivp) : indexed(ivp), type(lt), name(n), serial(s) { debugmsg("lortensor constructor from lortensor_types,string,unsigned,exvector",LOGLEVEL_CONSTRUCT); GINAC_ASSERT(all_of_type_lorentzidx()); @@ -246,8 +247,8 @@ ex lortensor::eval(int level) const //something has changed while sorting indices, more evaluations later return ex(sig) *lortensor(type,name,iv); } - lorentzidx const & idx1=ex_to_lorentzidx(seq[0]); - lorentzidx const & idx2=ex_to_lorentzidx(seq[1]); + const lorentzidx & idx1=ex_to_lorentzidx(seq[0]); + const lorentzidx & idx2=ex_to_lorentzidx(seq[1]); if ((!idx1.is_symbolic()) && (!idx2.is_symbolic())) { //both indices are numeric if ((idx1.get_value()==idx2.get_value())) { @@ -277,7 +278,7 @@ ex lortensor::eval(int level) const //protected -int lortensor::compare_same_type(basic const & other) const +int lortensor::compare_same_type(const basic & other) const { GINAC_ASSERT(is_of_type(other,lortensor)); const lortensor *o = static_cast (&other); @@ -292,7 +293,7 @@ int lortensor::compare_same_type(basic const & other) const return type < o->type ? -1 : 1; } -bool lortensor::is_equal_same_type(basic const & other) const +bool lortensor::is_equal_same_type(const basic & other) const { GINAC_ASSERT(is_of_type(other,lortensor)); const lortensor *o=static_cast (&other); @@ -311,7 +312,7 @@ unsigned lortensor::return_type_tinfo(void) const { return tinfo_key; } -ex lortensor::thisexprseq(exvector const & v) const +ex lortensor::thisexprseq(const exvector & v) const { return lortensor(type,name,serial,v); } @@ -326,7 +327,7 @@ ex lortensor::thisexprseq(exvector *vp) const // protected -void lortensor::setname(string const & n) +void lortensor::setname(const string & n) { name=n; } @@ -361,27 +362,27 @@ unsigned lortensor::next_serial=0; // friend functions ////////// -lortensor lortensor_g(ex const & mu, ex const & nu) +lortensor lortensor_g(const ex & mu, const ex & nu) { return lortensor(lortensor::lortensor_g,"",mu,nu); } -lortensor lortensor_epsilon(ex const & mu, ex const & nu, ex const & rho, ex const & sigma) +lortensor lortensor_epsilon(const ex & mu, const ex & nu, const ex & rho, const ex & sigma) { return lortensor(lortensor::lortensor_epsilon,"",mu,nu,rho,sigma); } -lortensor lortensor_rank1(string const & n, ex const & mu) +lortensor lortensor_rank1(const string & n, const ex & mu) { return lortensor(lortensor::lortensor_rank1,n,mu); } -lortensor lortensor_rank2(string const & n, ex const & mu, ex const & nu) +lortensor lortensor_rank2(const string & n, const ex & mu, const ex & nu) { return lortensor(lortensor::lortensor_rank2,n,mu,nu); } -ex simplify_lortensor_mul(ex const & m) +ex simplify_lortensor_mul(const ex & m) { GINAC_ASSERT(is_ex_exactly_of_type(m,mul)); exvector v_contracted; @@ -407,10 +408,10 @@ ex simplify_lortensor_mul(ex const & m) // process only lor_g objects if (is_ex_exactly_of_type(*it,lortensor) && (ex_to_lortensor(*it).type==lortensor::lortensor_g)) { - lortensor const & g=ex_to_lortensor(*it); + const lortensor & g=ex_to_lortensor(*it); GINAC_ASSERT(g.seq.size()==2); - idx const & first_idx=ex_to_lorentzidx(g.seq[0]); - idx const & second_idx=ex_to_lorentzidx(g.seq[1]); + const idx & first_idx=ex_to_lorentzidx(g.seq[0]); + const idx & second_idx=ex_to_lorentzidx(g.seq[1]); // g_{mu,mu} should have been contracted in lortensor::eval() GINAC_ASSERT(!first_idx.is_equal(second_idx)); ex saved_g=*it; // save to restore it later @@ -455,7 +456,7 @@ ex simplify_lortensor_mul(ex const & m) return m; } -ex simplify_lortensor(ex const & e) +ex simplify_lortensor(const ex & e) { // all simplification is done on expanded objects ex e_expanded=e.expand(); @@ -463,7 +464,7 @@ ex simplify_lortensor(ex const & e) // simplification of sum=sum of simplifications if (is_ex_exactly_of_type(e_expanded,add)) { ex sum=_ex0(); - for (int i=0; i