X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fsymbol.cpp;h=1bea2cec954698bc3751b8bbdd51efaee2ac8665;hp=6822dc49abb9a091091343ce36fa29680e60685f;hb=afdd7fa8c6c0a587f7c80789198551383e8beb7b;hpb=6b3768e8c544739ae53321539cb4d1e3112ded1b diff --git a/ginac/symbol.cpp b/ginac/symbol.cpp index 6822dc49..1bea2cec 100644 --- a/ginac/symbol.cpp +++ b/ginac/symbol.cpp @@ -2,17 +2,42 @@ * * Implementation of GiNaC's symbolic objects. */ +/* + * GiNaC Copyright (C) 1999 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 + */ + #include #include -#include "ginac.h" +#include "symbol.h" +#include "lst.h" #include "utils.h" +#include "idx.h" +#include "debugmsg.h" + +#ifndef NO_GINAC_NAMESPACE +namespace GiNaC { +#endif // ndef NO_GINAC_NAMESPACE ////////// // default constructor, destructor, copy constructor assignment operator and helpers ////////// -symbol::symbol() : basic(TINFO_SYMBOL) +symbol::symbol() : basic(TINFO_symbol) { debugmsg("symbol default constructor",LOGLEVEL_CONSTRUCT); serial=next_serial++; @@ -64,7 +89,7 @@ void symbol::destroy(bool call_parent) // public -symbol::symbol(string const & initname) : basic(TINFO_SYMBOL) +symbol::symbol(string const & initname) : basic(TINFO_symbol) { debugmsg("symbol constructor from string",LOGLEVEL_CONSTRUCT); name=initname; @@ -145,13 +170,13 @@ ex symbol::eval(int level) const ex symbol::subs(lst const & ls, lst const & lr) const { - ASSERT(ls.nops()==lr.nops()); -#ifdef DOASSERT + GINAC_ASSERT(ls.nops()==lr.nops()); +#ifdef DO_GINAC_ASSERT for (int i=0; i(&other); if (serial==o->serial) return 0; return serial < o->serial ? -1 : 1; @@ -173,7 +198,7 @@ int symbol::compare_same_type(basic const & other) const bool symbol::is_equal_same_type(basic const & other) const { - ASSERT(is_of_type(other,symbol)); + GINAC_ASSERT(is_of_type(other,symbol)); const symbol *o = static_cast(&other); return serial==o->serial; } @@ -257,3 +282,7 @@ type_info const & typeid_symbol=typeid(some_symbol); symbol::assigned_ex_info::assigned_ex_info(void) : is_assigned(0), refcount(1) { } + +#ifndef NO_GINAC_NAMESPACE +} // namespace GiNaC +#endif // ndef NO_GINAC_NAMESPACE