X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;ds=sidebyside;f=ginac%2Fconstant.cpp;h=092c933cdc5c56e318dd2b986e3d5b8090854a8f;hb=09f37bdbd46f469b3a8a902a43d0f795c41a89bf;hp=d6c07409a32d1ed581b6c0cbed444c6161ba9c9b;hpb=cfea748404dec5fb2f2e3310d36eeb6640f13824;p=ginac.git diff --git a/ginac/constant.cpp b/ginac/constant.cpp index d6c07409..092c933c 100644 --- a/ginac/constant.cpp +++ b/ginac/constant.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's constant types and some special constants. */ /* - * GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2002 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 @@ -22,6 +22,7 @@ #include #include +#include #include "constant.h" #include "numeric.h" @@ -133,30 +134,17 @@ void constant::print(const print_context & c, unsigned level) const c.s << std::string(level, ' ') << name << " (" << class_name() << ")" << std::hex << ", hash=0x" << hashvalue << ", flags=0x" << flags << std::dec << std::endl; - } else if (is_a(c)) + } else if (is_a(c)) { c.s << TeX_name; - else + } else if (is_a(c)) { + c.s << class_name() << "('" << name << "'"; + if (TeX_name != "\\mbox{" + name + "}") + c.s << ",TeX_name='" << TeX_name << "'"; + c.s << ')'; + } else c.s << name; } -int constant::degree(const ex & s) const -{ - return is_equal(ex_to(s)) ? 1 : 0; -} - -int constant::ldegree(const ex & s) const -{ - return is_equal(ex_to(s)) ? 1 : 0; -} - -ex constant::coeff(const ex & s, int n) const -{ - if (is_equal(ex_to(s))) - return n==1 ? _ex1 : _ex0; - else - return n==0 ? *this : _ex0; -} - ex constant::evalf(int level) const { if (ef!=0) { @@ -199,11 +187,9 @@ bool constant::is_equal_same_type(const basic & other) const unsigned constant::calchash(void) const { hashvalue = golden_ratio_hash(tinfo() ^ serial); - // mask out numeric hashes: - hashvalue &= 0x7FFFFFFFU; - + setflag(status_flags::hash_calculated); - + return hashvalue; }