]> www.ginac.de Git - ginac.git/blobdiff - ginac/symbol.cpp
- ASSERT macro renamed to GINAC_ASSERT
[ginac.git] / ginac / symbol.cpp
index 6822dc49abb9a091091343ce36fa29680e60685f..f1dc18dffc7ad7a3a8413a0d925d9160a1147ca8 100644 (file)
@@ -2,17 +2,40 @@
  *
  *  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 <string>
 #include <stdexcept>
 
-#include "ginac.h"
+#include "symbol.h"
+#include "lst.h"
 #include "utils.h"
+#include "idx.h"
+#include "debugmsg.h"
+
+namespace GiNaC {
 
 //////////
 // 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 +87,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 +168,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<ls.nops(); i++) {
-        ASSERT(is_ex_exactly_of_type(ls.op(i),symbol)||
+        GINAC_ASSERT(is_ex_exactly_of_type(ls.op(i),symbol)||
                is_ex_of_type(ls.op(i),idx));
     }
-#endif // def DOASSERT
+#endif // def DO_GINAC_ASSERT
 
     for (int i=0; i<ls.nops(); i++) {
         if (is_ex_exactly_of_type(ls.op(i),symbol)) {
@@ -165,7 +188,7 @@ ex symbol::subs(lst const & ls, lst const & lr) const
 
 int symbol::compare_same_type(basic const & other) const
 {
-    ASSERT(is_of_type(other,symbol));
+    GINAC_ASSERT(is_of_type(other,symbol));
     const symbol *o = static_cast<const symbol *>(&other);
     if (serial==o->serial) return 0;
     return serial < o->serial ? -1 : 1;
@@ -173,7 +196,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<const symbol *>(&other);
     return serial==o->serial;
 }
@@ -257,3 +280,5 @@ type_info const & typeid_symbol=typeid(some_symbol);
 symbol::assigned_ex_info::assigned_ex_info(void) : is_assigned(0), refcount(1)
 {
 }
+
+} // namespace GiNaC